找到* .tar然后提取并删除文件

时间:2014-09-14 04:33:52

标签: linux bash find tar xargs

我试图找到一个tar文件,提取文件然后删除所有提取的文件 - 我能够执行查找和提取或找到文件并将其删除但是我可以不能把所有三个串在一起。

以下是我最好的尝试。它运行没有错误,但不会删除提取的文件,因此我仍然坚持如何删除我提取到当前目录的文件。

find  ~ -name '*.tar' | xargs tar -xf && rm -f

我尝试将tar解压缩到另一个目录,然后删除目录,但在使用xargs时无法使其工作。我试过搜索了很多不同的地方,但找不到任何东西,所以我很感激你的帮助。

2 个答案:

答案 0 :(得分:7)

&&结束了管道,它不是xargs命令的一部分。

您可以使用-exec选项find运行命令:

find ~ -name '*.tar' -exec tar -xf {} \; -exec rm -f {} \;

答案 1 :(得分:2)

使用xargs运行两个或多个命令:

find  ~ -name '*.tar' | xargs -I {} sh -c 'tar -xf {} && rm -f {}'

只有在成功解压缩tar文件后才会被删除。