系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux系統(tǒng)刪除指定時(shí)間段文件

Linux系統(tǒng)刪除指定時(shí)間段文件的方法

時(shí)間:2015-06-08 17:02:10 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150608/50323.html 手機(jī)查看 評論

  Linux系統(tǒng)下批量刪除文件的方法很簡單,但是要?jiǎng)h除指定時(shí)間內(nèi)的文件比較難,需要通過Linux腳本來實(shí)現(xiàn),下面小編就給大家介紹下Linux刪除指定時(shí)間內(nèi)文件的方法。

Linux系統(tǒng)刪除指定時(shí)間段文件的方法

  find查找刪除文件

  例如從當(dāng)前目錄查找所有以.txt結(jié)尾的文件并在屏幕上顯示出來,命令行為:

  find 。 -name ‘*.txt’ -print

  查找兩個(gè)后綴的文件,就改為下面的用法:

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

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

  find / -type l -exec rm {} ;

  只查找文件,不包含目錄的(該行,不能加--print,加了會(huì)報(bào)錯(cuò)):

  find 。 -type f

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

  find 。 -user ‘tom’ -print

  又如顯示當(dāng)前目錄中大于20字節(jié)的.c文件名,命令行為:

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

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

  find 。 -atime 10 -print

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

  find 。 -atime -10 -print

  查找/home目錄下權(quán)限為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

  在當(dāng)前目錄中查找所有文件名以.doc結(jié)尾,且更改時(shí)間在5天以上的文件,找到后進(jìn)行刪除,且刪除前給出提示,命令行為:

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

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

  自動(dòng)刪除當(dāng)前目錄五天以前的文件

  注:后面的反斜杠不能少,不然會(huì)報(bào) ”find: 遺漏”-exec”的參數(shù)” 。

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

  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

  在當(dāng)前目錄中查找文件名由一個(gè)小寫字母、一個(gè)大寫字母和兩個(gè)數(shù)字組成,且擴(kuò)展名為.doc的文件,并顯示,命令行為:

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

  查找空文件夾:

  find -type d -empty

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

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

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

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

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

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

  刪除16點(diǎn)22分生成的所有文件:

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

  同理,想要?jiǎng)h除某年某月的所有文件也可以使用同樣的方法。

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

標(biāo)簽 文件刪除

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨(dú)特見解

立即評論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄