将tarball解压缩到同一目录中

时间:2013-10-08 20:50:56

标签: bash shell tar

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

我试过

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

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

请尽可能帮助我。谢谢:))

1 个答案:

答案 0 :(得分:3)

你可以使用这样的发现:

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

编辑以上查找命令的较短版本为:

find . -name "*.tar.gz" -execdir tar zxvf "{}" \;
相关问题