我有一个包含大量tar包的文件夹层次结构。我需要编写一个递归到每个目录的脚本,在相应的目录中提取tarball。将压缩包解压缩到同一个目录中
我试图
find ./ -name "*.tar.gz" -exec /bin/tar -zxvf {} \;
与提取到PWD,而不是在对应的目录中的所有压缩包中执行的代码。
如果可能,请协助我。谢谢:)
我有一个包含大量tar包的文件夹层次结构。我需要编写一个递归到每个目录的脚本,在相应的目录中提取tarball。将压缩包解压缩到同一个目录中
我试图
find ./ -name "*.tar.gz" -exec /bin/tar -zxvf {} \;
与提取到PWD,而不是在对应的目录中的所有压缩包中执行的代码。
如果可能,请协助我。谢谢:)
您可以使用发现这样的:
find . -name "*.tar.gz" -exec bash -c 'd=$(dirname "{}") && b=$(basename "{}") && cd "$d" && tar zxvf "$b"' \;
编辑以上find命令的一个较短的版本将是:
find . -name "*.tar.gz" -execdir tar zxvf "{}" \;
'find'的'-execdir'选项将在匹配的文件的相应目录中运行指定的命令,而不是在“查找”进程的CWD中运行。 – iscfrc