我想知道是否(当然还有如何)可以tar
在一次运行中提取多个文件。
我是几年来经验丰富的 Unix 用户,当然我知道您可以使用for
或find
或类似的东西tar
为要提取的每个存档调用一次,但是我无法想出一个工作命令行导致我的tar
一次提取两个 .tar.gz 文件。(不,没有什么问题for
,我只是问是否可以没有。)
我问这个问题是出于好奇,也许
tar
支持这个-M
参数tar
tar -zxv -f a.tgz -f b.tgz
for
或find
或xargs
类似的提示。请不要回复tar -zxvf *.tar.gz
(因为这确实不工作)与回复以“不工作”,如果你是绝对的把握它(也许有一个很好的解释为什么,太)。
编辑:有人指出我在 Stack Overflow 上回答了这个问题,其中详细说明了不破坏当前tar
语法是不可能的,但我认为这不是真的。使用tar -zxv -f a.tgz -f b.tgz
ortar -zxv --all-args-are-archives *.tar.gz
不会破坏现有的语法,恕我直言。
pol*_*ial 52
这是可能的,语法很简单:
$ cat *.tar | tar -xvf - -i
Run Code Online (Sandbox Code Playgroud)
-i 选项从手册页忽略 tar 存档末尾的 EOF:
-i, --ignore-zeros
ignore blocks of zeros in archive (normally mean EOF)
Run Code Online (Sandbox Code Playgroud)
小智 34
对于*.tar.gz:
for file in *.tar.gz; do tar -zxf "$file"; done
Run Code Online (Sandbox Code Playgroud)
对于*.tar.bz2:
for file in *.tar.bz2; do tar -jxf "$file"; done
Run Code Online (Sandbox Code Playgroud)
对于*.tar.xz:
for file in *.tar.xz; do tar -Jxf "$file"; done
Run Code Online (Sandbox Code Playgroud)