直接上代码linux
↓shell
1 #!/bin/sh 2 3 find /var/spool/mail/ -type f -size +10M -print -exec gzip {} \; > /tmp/mail_rotate_gzip.log 2>&1 4 find /var/spool/mail/ -type f -iname *.gz | xargs rename .gz .`date "+%Y%m%d"`.gz 5 find /var/spool/mail/ -type f -daystart -mtime +180 -iname *.gz -print -exec rm -f {} \; > /tmp/mail_rotate_remove.log 2>&1
find命令_Linux find 命令用法详解:在指定目录下查找文件
https://man.linuxde.net/findspa
虚拟机实验.net
↓code
找到下超过1MB的文件,gzip打成压缩包,源文件就没了
find /var/log/ -type f -size +1M -print -exec gzip {} \;blog
把"*.gz"压缩包文件,批量重命名为"*.190827.gz"的形式,源压缩包文件就没有了
find /var/log/ -type f -iname "*.gz" | xargs rename .gz .`date "+%Y%m%d"`.gzip
找到从本日开始计算,3天前修改过的"*.gz"文件,删除掉
find /var/log/ -type f -daystart -mtime +3 -iname "*.gz" -print -exec rm -f {} \;rem
在/logs目录中查找更改时间在7日之前的文件并删除它们:
$ find logs/ -type f -mtime +7 -exec rm -f {} \;
在/logs目录中查找更改时间在7日之内的文件并删除它们:
$ find logs/ -type f -mtime -7 -exec rm -f {} \;
而后加入的计划任务中每日执行即可。
↓
目录中查找更改时间在7日之前的文件:
find ./ -type f -mtime +7
目录中查找更改时间在7日之内的文件:
find ./ -type f -mtime -7
目录中查找更改时间在7日之内的目录:
find ./ -type d -mtime -7
↓
目录中查找更改时间在7日之内的文件:
find ./ -type f -mtime -30
目录中查找更改时间在7日之内的目录:
find ./ -type d -mtime -30
↓
将find的结果详细展现出来:
find ./ -type f -mtime -30 -exec ls -lh {} \;
find ./ -type f -mtime -30 -print -exec ls -lh {} \;虚拟机
-print: 将查找到的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。class