存档后如何自动删除文件?

use*_*606 11 linux tar archiving

我如何存档和删除多余的文件示例。

cd ~/Desktop && tar -cvf sitepack.tar ./
Run Code Online (Sandbox Code Playgroud)

这会给我

ls
Riva_Starr_Feat._Noze_I_Was_Drunk_Official_Video_HD_.mp3
Riva_Starr_feat._Sud_Sound_System_Orizzonti_Official_Vide.mp3
Riva_starr_I_was_drunk_Syskey_remix_.mp3
sitepack.tar
Run Code Online (Sandbox Code Playgroud)

当我正在寻找的是

ls
sitepack.tar
Run Code Online (Sandbox Code Playgroud)

所以它将所有内容归档到 zip 中而不是将它们留在原处?

Mat*_*Mat 15

如果您使用的是 GNU tar,则可以使用以下--remove-files选项:

--remove-files
Run Code Online (Sandbox Code Playgroud)

将文件添加到存档后删除文件

但这不是便携式的。

如果你tar没有,你需要手动完成,分两步。
我建议你不要把tar文件放在你要打包的目录中,而要把它放在父目录中。这样你就可以rm *tar完成后简单地(可能递归地)。

  • 总是有`tar cvf <out-file> <in-files> | xargs rm -f` 也可以在添加文件后立即删除文件,如果您的 tar 不支持上述 GNU 扩展。 (3认同)