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

我试图find一个tar文件,提取文件,然后删除所有提取的文件 – 我能够执行查找和提取,或find该文件,并将其删除,但我无法将所有三个string。

下面是我最好的尝试。 它运行没有错误,但不删除提取的文件,所以我坚持如何删除我已经提取到当前目录的文件。

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

我试图解压缩到另一个目录,然后删除目录,但无法使其在使用xargs时工作。 我已经尝试了很多不同的领域,但是找不到任何东西,所以我很感激这个帮助。

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

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

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

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

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

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