错误退出延迟了上一个错误

时间:2014-08-05 05:08:03

标签: linux shell gzip tar

我试图找到目录中的文件然后gzip然后tar它。

剧本:

find /home -type f -name "*.log" -newer /home/path/start_date \
    ! -newer /home/path/end_date | xargs -0 tar -cvzf files.tar.gz

tar仍在创建,但我遇到了一些错误:

tar:/home/path/filename.log\n Cannot stat : No such file or directory
tar:Error exit delayed from previous errors.

有人可以解释这些错误是什么吗?感谢。

1 个答案:

答案 0 :(得分:0)

您忘记了-print0

  

-print0

     

真;在标准输出上打印完整的文件名,然后是a   null字符(而不是-print使用的换行符)。   这允许包含换行符或其他类型白色的文件名   空间被正在处理的程序正确解释   找到输出。此选项对应于xargs的-0选项。

同样引用您的感叹号以防止历史扩展以防万一:

find /home -type f -name "*.log" -newer /home/path/start_date \! -newer /home/path/end_date -print0 | xargs -0 tar -cvzf files.tar.gz

这不是POSIX,但如果您可以使用-not,请改用-not

... -not -newer ...