如何使用shell脚本解压所有.tar.gz?

fif*_*shi 13 linux shell tar

我试过这个:

DIR=/path/tar/*.gz

if [ "$(ls -A $DIR 2> /dev/null)" == "" ]; then
  echo "not gz"
else
  tar -zxvf /path/tar/*.gz -C /path/tar
fi
Run Code Online (Sandbox Code Playgroud)

如果文件夹有一个tar,它可以工作.如果文件夹有很多tar,我收到一个错误.

我怎样才能做到这一点?

我有一个想法来运行循环来解压,但我不知道如何解决这个问题

Ign*_*ams 25

for f in *.tar.gz
do
  tar zxvf "$f" -C /path/tar
done
Run Code Online (Sandbox Code Playgroud)


Jos*_*ell 13

我发现findexec语法非常有用:

find . -name '*.tar.gz' -exec tar -xzvf {} \;

{} 被找到的每个文件替换,并执行该行.