直接上代碼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