我想在/app/*/in
目录下保存一些特定名称(/app/*/out
,/app/*/log
,/app
)的文件,然后按gzip
保存(如果是文件)超过1周,然后gzip it)和rm
命令(如果文件超过6个月,则删除它。
我找到命令列出需要保管的目录。
find /app \( -name "log" -o -name "LOG" -o -name "infile" -o -name "out" \)
我怎么做?
答案 0 :(得分:0)
查找超过7天(-mtime +7)的文件(-type f)并执行命令(-exec并用作文件的占位符和\;用于结束命令) 我添加了一个\作为最后一个位置,所以我可以在下一行添加命令。
find /app \( -name "log" -o -name "LOG" -o -name "infile" -o -name "out" \) \
-type f -mtime +7 -exec gzip {} \;
类似
find /app \( -name "log" -o -name "LOG" -o -name "infile" -o -name "out" \) \
-type f -mtime +30 -exec rm -f {} \;
请注意 如果要对每个文件执行额外操作,可以避免使用-exec命令:
find /app \( -name "log" -o -name "LOG" -o -name "infile" -o -name "out" \) \
-type f -mtime +7 | while read oldfile; do
echo "Compressing ${oldfile}"
gzip ${oldfile}
done