我有一些我想压缩非常大的日志文件独立,所以我不能用xargs的或管道标准输出,以获得巨大的压缩文件。
我正在尝试这样做:
find . -mtime +1 -iname "*.log" -exec tar -jcvf {} --remove-files \;
但我得到:
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
我已经尝试过转义双破折号(-),但我认为这是问题所在,但无济于事。
是的,find确实找到了一个文件:
find . -mtime +1 -iname "*.log"
./20141002.tcp.log # just a test file...
谁能告诉我我在做什么错?
谢谢!
Tar
之所以抱怨,是因为您错过了将参数传递给它的-f
选项,而不是因为--
您怀疑的原因。
这是一种修复GNU tar
可能与您正在使用的命令配合使用的方法:
find . -mtime +1 -iname "*.log" -exec tar --remove-files -jcvf {}.tar.bz2 {} \;
如果您的find
实现要{}
像POSIX标准所指定的那样保持独立,则可以运行:
find . -mtime +1 -iname "*.log" -exec sh -c 'tar --remove-files -jcvf $1.tar.bz2 $1' sh {} \;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句