2

我有一个文件夹层次结构,其中包含很多 tarball。我需要编写一个递归到每个目录的脚本,将压缩包解压到相应的目录中。

我试过

find ./ -name "*.tar.gz" -exec /bin/tar -zxvf {} \;

使用提取到 pwd 的所有 tarball 执行的代码,而不是在相应目录中。

如果可能的话,请协助我。谢谢 :)

4

1 回答 1

3

您可以像这样使用查找:

find . -name "*.tar.gz" -exec bash -c 'd=$(dirname "{}") && b=$(basename "{}") && cd "$d" && tar zxvf "$b"' \;

编辑上述 find 命令的较短版本将是:

find . -name "*.tar.gz" -execdir tar zxvf "{}" \;
于 2013-10-08T20:59:50.437 回答