我想清理服务器上的大型日志文件和备份。
我想出了这个:
find ./ -size +1M | xargs rm
但我不想包括 mp3 和 mp4。我只想对日志和存档文件(zip、tar 等)执行此操作
该命令会是什么样子?
答案1
find -type f \( -name "*zip" -o -name "*tar" -o -name "*gz" \) -size +1M -delete
编辑:正如 Eric Renouf 所说,如果您的版本find
不支持该-delete
选项,请使用该-exec
选项
find -type f \( -name "*zip" -o -name "*tar" -o -name "*gz" \) -size +1M -exec rm {} +
其中由命令过滤的所有文件find
都传递给rm
命令
答案2
如果要按名称排除文件,可以使用以下语法:
find . -type f ! -name '*.mp3' ! -name '*.mp4' -size +1M -delete
或者如果您find
不支持delete
:
find . -type f ! -name '*.mp3' ! -name '*.mp4' -size +1M -exec rm {} \;
答案3
根据上面的答案,我使用下面的命令从大日志文件中清除服务器(在 cd'ing 到 /var/lib/jenkins 后)
find -type f -name *log -size +500M -delete