歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux維護

Linux系統刪除指定時間段文件的方法

Linux系統下批量刪除文件的方法很簡單,但是要刪除指定時間內的文件比較難,需要通過Linux腳本來實現,下面小編就給大家介紹下Linux刪除指定時間內文件的方法。

find查找刪除文件

例如從當前目錄查找所有以.txt結尾的文件並在屏幕上顯示出來,命令行為:

find 。 -name ‘*.txt’ -print

查找兩個後綴的文件,就改為下面的用法:

find 。 ( -name *.xml -o -name *.sh )

再如從根目錄查找類型為符號連接的文件,並將其刪除,命令行為:

find / -type l -exec rm {} ;

只查找文件,不包含目錄的(該行,不能加--print,加了會報錯):

find 。 -type f

又如從當前目錄查找用戶tom的所有文件並在屏幕上顯示,命令行為:

find 。 -user ‘tom’ -print

又如顯示當前目錄中大於20字節的.c文件名,命令行為:

find 。 -name “*.c” -size +20c -print

顯示當前目錄中恰好10天前訪問過的文件名,命令行為:

find 。 -atime 10 -print

顯示當前目錄中不到10天前訪問過的文件名,命令行為:

find 。 -atime -10 -print

查找/home目錄下權限為640的文件或目錄,命令行為:

find /home -perm 640

搜索根目錄下大於100KB的文件,並顯示,命令行為:

find / -size +100K -print

搜索根目錄下小於500KB的文件,命令行為:

find / -size -500K -print

刪除文件大小為0的文件

rm -i `find 。/ -size 0`

find 。/size 0 exec rm {} ;

find 。/size 0|xargs rm -rf

在當前目錄中查找所有文件名以.doc結尾,且更改時間在5天以上的文件,找到後進行刪除,且刪除前給出提示,命令行為:

find 。 -name ‘*.doc’ -mtime +5 -ok rm {} ;或

find 。 -mtime +5 -name “*.*” -exec rm -f {} ;

自動刪除當前目錄五天以前的文件

注:後面的反斜槓不能少,不然會報 ”find: 遺漏”-exec”的參數” 。

在當前目錄下查找所有鏈接文件,並以長格式顯示文件的基本信息,命令行為:

find 。 -type l -exec ls -l {} ;

lrw-rw-r-- 1 root root 36 07-27 14:34 。/example2

lrw-rw-r-- 1 root root 72 07-27 14:36 。/example3

lrw-rw-r-- 1 root root 36 07-27 14:36 。/example1

在當前目錄中查找文件名由一個小寫字母、一個大寫字母和兩個數字組成,且擴展名為.doc的文件,並顯示,命令行為:

find 。 -name ‘ [a-z][A-Z][0-9][0-9].doc’ -print

查找空文件夾:

find -type d -empty

但是在利用find進行操作時,不難發現兩個問題:一是find查找耗費的時間相對較長,二是find查詢時較一般的腳本所用的資源要相對大些。而且對於某一個時間段內的文件處理上也不是十分好。所以還是利用普通腳本更實用一些。

例如:我想刪除某目錄下所有6月份的文件,就可以利用下面的腳本實現:

for filename in *; do if [ `date -r $filename +%m` == “06” ];then rm -f $filename; fi done

date -r, --reference=文件 顯示文件指定文件的最後修改時間 。+%m表示只顯示月份,如果結果和06是相同的,則執行後面的刪除。

而且這樣做,我們還可以精確到幾點幾分,刪除本目錄下16點生成的文件:

for filename in *; do if [ `date -r $filename +%H` == “16” ];then rm -f $filename; fi done

刪除16點22分生成的所有文件:

for filename in *; do if [ `date -r $filename +%H%M == “1622” ];then rm -f $filename; fi done

同理,想要刪除某年某月的所有文件也可以使用同樣的方法。

上面就是Linux刪除指定時間段文件的方法介紹了,主要是通過find命令來實現,用戶根據個人需求選擇合適的腳本處理。

Copyright © Linux教程網 All Rights Reserved