在Linux/Unix系統中,咱們的應用天天會產生日誌文件,天天也會備份應用程序和數據庫,日誌文件和備份文件長時間積累會佔用大量的存儲空間,而有些日誌和備份文件是不須要長時間保留的,通常保留7天內的文件便可,那麼咱們怎麼找出並刪除7天前產生的日誌文件和備份文件並將其刪除呢?數據庫
Linux/Unix提供了find 操做系統命令,使用該命令能夠實現咱們的目標。操作系統
$man find 能夠查看find命令的使用方法。日誌
1. 找出 n 天前的文件file
$find /temp/ -type f -mtime +n -print程序
注:/temp/ 指出尋找/temp/目錄下的文件方法
-type f 指出找系統普通文件,不包含目錄文件im
-mtime +n 指出找 n*24 小時前的文件數據
-print 將找出的文件打印出來sort
如:找出 7 天前的文件文件
$find /temp/ -type f -mtime +7 -print
找出 3 天前的文件
find /temp/ -type f -mtime +3 -print
2. 找出並刪除 7 天前的文件
$find /temp/ -type f -mtime +7 -print -exec rm -f {} \;
注:-exec 指出要執行後面的系統命令
rm -f 刪除找出的文件
{} 只有該符號能跟在命令後面
\ 結束符
3. 也能夠使用 xargs 代替 -exec
$find /temp/ -type f -mtime +7 -print | xargs rm -f
find命令用途舉例:
如:
* 查找/var下最大的前10個文件:
$ find /var -type f -ls | sort -k 7 -r -n | head -10
* 查找/var/log/下大於5GB的文件:
$ find /var/log/ -type f -size +5120M -exec ls -lh {} \;
* 找出今天的全部文件並將它們拷貝到另外一個目錄:
$ find /home/me/files -ctime 0 -print -exec cp {} /mnt/backup/{} \;
* 找出全部一週前的臨時文件並刪除:
$ find /temp/ -mtime +7-type f | xargs /bin/rm -f
* 查找全部的mp3文件,並修改全部的大寫字母爲小寫字母:
$ find /home/me/music/ -type f -name *.mp3 -exec rename 'y/[A-Z]/[a-z]/' '{}' \;