fra*_*ank 8 command-line osx ubuntu tar terminal
如何使用终端/命令行(Ubuntu 14.04 (Trusty Tahr))解压/解压 tar.gz 中的特定文件夹?
精确的:
-file.tar.gz
-- folder1
-- folder2
Run Code Online (Sandbox Code Playgroud)
如何提取...
... folder1 --> ~/locationX
... folder2 --> ~/locationY
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
请注意:
这纯粹与终端/命令行相关,而不是Puppet。这只是一个例子 - 我会在 Puppet 中节省大约 50 个额外的步骤,如果有一个命令可以从 a 中解压缩特定文件夹,tar.gz因为我可以避免移动文件......
Bar*_*mar 15
我认为应该这样做:
tar -xzf file.tar.gz -C ~/locationX folder1 -C ~/locationY folder2
Run Code Online (Sandbox Code Playgroud)
该-C选项表示在进行提取之前切换到指定的目录。在 tarfile 名称后指定文件名参数会将提取限制为仅这些文件或目录。你可以-C像你一样重复这个悬挂目录。
请注意,这将在子目录中进行提取:folder1将进入~/locationX/folder1,folder2将进入~/locationY/folder2。您可以使用以下--strip-components选项来防止这种情况:
tar -xzf file.tar.gz -C ~/locationX --strip-components=1 folder1 \
-C ~/locationY --strip-components=1 folder2
Run Code Online (Sandbox Code Playgroud)
此外,如果 tar 文件中的实际前缀是./folder1和./folder2,就像您创建 tar 文件时一样tar -czf file.tar.gz .,您需要./在文件名参数中包含前缀,并更改为--strip-components=2.