我有一个文件夹层次结构,其中包含很多tarball。我需要编写一个递归到每个目录的脚本,在相应的目录中解压缩tarball。
我试过
find ./ -name "*.tar.gz" -exec /bin/tar -zxvf {} \;
执行的代码将所有tarball提取到pwd,而不是在相应的目录中。
请尽可能帮助我。谢谢:))
答案 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 "{}" \;