我在一个目录中有很多文件。每个文件都有不同的名称:
one.tar.gz
juk.tar.gz
cv.tar.gz
erf.tar.gz
vcx.tar.gz
cxcd.tar.gz
vc.tar.gz
jkjk.tar.gz
zxc.tar.gz
asd.tar.gz
ghj.tar.gz
kll.tar.gz
qwe.tar.gz
逐个提取非常耗时。所以我想使用一个命令提取所有文件。我试过了,tar -xzf *
但没有用
答案1
使用find
mojo:
find . -maxdepth 1 -type f -iname '*.tar.gz' -exec tar xzf '{}' \;
答案2
预计不会起作用,因为tar -xzf *.tar.gz
在您的案例中会扩展为tar -xzf one.tar.gz juk.tar.gz cv.tar.gz ...
这意味着枪械 one.tar.gz
juk.tar.gz
并从中提取名为、等的文件cv.tar.gz
。这显然不是您想要的。
您必须对所有 tar.gz 文件进行循环才能提取它们。
例如:
for f in *.tar.gz ; do tar -xzf $f ; done
答案3
for i in *.tar.gz
do tar -xzf $i
done
会很好用
答案4
ls *.tar.gz | xargs -n 1 tar -xzf