我试图找到目录中的文件然后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.
有人可以解释这些错误是什么吗?感谢。
答案 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 ...