Linux/Unix 怎樣找出並刪除某一時間點的文件


Linux/Unix 怎樣找出並刪除某一時間點的文件

在Linux/Unix系統中,我們的應用每天會產生日志文件,每天也會備份應用程序和數據庫,日志文件和備份文件長時間積累會占用大量的存儲空間,而有些日志和備份文件是不需要長時間保留的,一般保留7天內的文件即可,那么我們怎么找出並刪除7天前產生的日志文件和備份文件並將其刪除呢?

Linux/Unix提供了find 操作系統命令,使用該命令可以實現我們的目標。
$man find 可以查看find命令的使用方法。
1. 找出 n 天前的文件

$find /temp/ -type f -mtime +n -print

注:/temp/ 指出尋找/temp/目錄下的文件
-type f 指出找系統普通文件,不包含目錄文件
-mtime +n 指出找 n*24 小時前的文件
-print 將找出的文件打印出來
如:找出 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]/' '{}' \;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM