如何在各个子文件夹中找到所有 tar 文件,然后将它们解压缩到找到它们的同一文件夹中?
How to find all tar files in various sub-folders, then extract them in the same folder they were found?
我有很多子文件夹,只有一些包含 tar 文件。即:
folder1/
folder2/this-is-a.tar
folder3/
folder4/this-is-another.tar
我可以通过 ls */*.tar
找到哪些目录有 tar。
我想要实现的是以某种方式找到所有 .tar 文件,然后将它们解压缩到找到它们的同一目录中,然后删除 .tars.
我已经试过 ls */*.tar | xargs -n1 tar xvf
但它提取的是我所在目录中的 tar,而不是 tar 所在的目录。
如有任何帮助,我们将不胜感激。
for file in */*.tar; do
(cd `dirname $file`; tar xvf `basename $file`)
unlink $file
done
for i in */*.tar ; do pushd `dirname $i` ; tar xf `basename $i` && rm `basename $i` ; popd ; done
编辑:这可能是更好的方法:
find . -type f -iname "*.tar" -print0 -execdir tar xf {} \; -delete
我有很多子文件夹,只有一些包含 tar 文件。即:
folder1/
folder2/this-is-a.tar
folder3/
folder4/this-is-another.tar
我可以通过 ls */*.tar
找到哪些目录有 tar。
我想要实现的是以某种方式找到所有 .tar 文件,然后将它们解压缩到找到它们的同一目录中,然后删除 .tars.
我已经试过 ls */*.tar | xargs -n1 tar xvf
但它提取的是我所在目录中的 tar,而不是 tar 所在的目录。
如有任何帮助,我们将不胜感激。
for file in */*.tar; do
(cd `dirname $file`; tar xvf `basename $file`)
unlink $file
done
for i in */*.tar ; do pushd `dirname $i` ; tar xf `basename $i` && rm `basename $i` ; popd ; done
编辑:这可能是更好的方法:
find . -type f -iname "*.tar" -print0 -execdir tar xf {} \; -delete