添加到tar后删除文件

Posted

技术标签:

【中文标题】添加到tar后删除文件【英文标题】:Deleteing files after adding to tar 【发布时间】:2012-11-17 16:30:27 【问题描述】:

目前我正在编写备份 mysql 数据的 bash 脚本,我遇到的唯一问题是 tar 的参数在 debian 上运行,但在 FreeBSD 上不起作用。

是的,我读过这个: Deleting files after adding to tar archive

答案是我一直在debian 上使用的解决方案——我的意思是--remove-files 参数。

在 FreeBSD 上执行以下命令:

tar --remove-files -jcPf $DIR/$Y/$M/$D/mysql-$HOUR.tar.bz2 *.sql

抛出以下错误:

tar: Option --remove-files is not supported

我还没有找到任何类似于 --remove-files 参数的东西。在阅读man tar时,有什么解决办法?

【问题讨论】:

【参考方案1】:

它必须是 tar 选项吗?很可能 --remove-files 是 gnu 扩展(或其他),因此您可能只需在 FreeBSD 上安装此“扩展”版本的 tar 并使用它。

如果您不能/不想这样做,我认为可以这样做:

tar -jvcPf $DIR/$Y/$M/$D/mysql-$HOUR.tar.bz2 *.sql | xargs rm

顺便说一句,我认为 '-' 可以(并且应该)从 tar 选项中省略...

【讨论】:

xargs rm 不起作用,它会留下文件而不删除它们。 尝试添加 -f 选项:... | xargs rm -f

以上是关于添加到tar后删除文件的主要内容,如果未能解决你的问题,请参考以下文章

linux 压缩解压命令tar如何解压后删除源文件?

linux中把一个包解压(tar)安装成功后那些软件安装在啥位置,那个解压包时产生的文件夹可以删除吗?

Zip - 添加较新的文件和文件夹,删除旧的

linux之tar使用技巧

Git的基本使用 -- 文件的添加撤销对比删除

linux下如何批量删除文件名的某个字符串