You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按日期打包tar文件异常:为何find筛选的文件未被正确打包?

问题原因与解决方法

你的操作失误在于同时使用了xargs和tar的-T -选项传递文件列表,二者逻辑冲突,导致tar错误打包了当前目录所有文件:

  • tar -T -的作用是让tar从标准输入读取要打包的文件路径
  • xargs会把find的输出转换成tar的命令行参数,此时标准输入已经没有内容
  • 当tar通过-T -读取不到任何文件路径时,会默认打包当前目录下的所有文件

正确的两种实现方式

方式一:直接让find输出传给tar的-T选项(推荐)

这种方式能完美处理含空格、换行的特殊文件名,且不会出现参数过多的问题:

find -mtime 0 -print0 | tar -zcvf teste.tar.gz --null -T -
  • -print0:让find用空字符分隔输出的文件路径
  • --null:告诉tar用空字符作为路径分隔符,对应find的-print0

方式二:用xargs但不使用-T选项

如果要使用xargs,需去掉-T -,同时同样处理特殊字符:

find -mtime 0 -print0 | xargs -0 tar -zcvf teste.tar.gz

注意:如果匹配的文件数量极多,xargs会分多次调用tar,后续调用会覆盖之前生成的teste.tar.gz,因此这种方式不如第一种可靠。

内容的提问来源于stack exchange,提问作者Anderson Silvestre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:52:12