最经部署的一个项目 ,很多子程序在大批量处理数据时会疯狂的写日志,且没做日志管理,导致日志文件一小时能跑1-2G左右,于是想到写个定时任务定时清空日志文件,因为tomcat的日志文件是不能直接删除的,否则在重启应用前不会自动创建该文件,且有报错的风险,于是像到的思路是 利用find命令查找到大文件,然后利用重定向清空,于是得到下面的语句,结果报错,提示 >有特殊意义,不支持这种写法
find /opt/app -name "*.out" -size +1000M |xargs echo '' >
#-bash:syntax error near unexpected token 'newline'
于是更改为 一下语句正常执行
find /opt/app -name "*.out" -size +1000M |xargs -i -p -n 1 sh -c "echo > {}"
-i 或者是-I 将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。