解压并删除tar(或tar.gz)

tlj*_*bas 7 unix shell gzip tar sh

我这里有这个小代码

for i in *.tar.gz; 
   do tar xzvf $i;
done && find . -name "*.tar.gz" -exec rm {} \; 
Run Code Online (Sandbox Code Playgroud)

现在,当我有多个tars时,它将首先解压所有这些,然后删除tar文件.

如何更改代码以解压缩文件,删除它然后移动到下一个tar文件?

提前致谢

Adr*_*rth 10

for file in *.tar.gz; do tar xzvf "${file}" && rm "${file}"; done
Run Code Online (Sandbox Code Playgroud)

不要忘记引用您的变量来考虑带有空格的时髦文件名.

  • @tljubas `&&` 确保只有在左侧返回零退出代码(成功终止)时才会运行右侧,因此如果一切顺利,它应该只删除文件,错误时 `rm` 不会被执行。 (3认同)