find 命令可以完成這一需求,比如刪除3天前的所有以「.log」結尾的文件:
find /文件路徑專 -name "*.log" -mtime +2 -exec rm {} \;
說明:
1. 文件路徑是目屬標文件所在路徑;
2. -name 設定目標文件名,建議採用,否則可能誤刪其他文件;
3. -ctime 文件最後一次修改時間,後面只能用整數,單位為天,同時,還有atime,mtime,amin,cmin,mmin等時間參數可選,具體請查看幫助;
4. 時間說明如下圖(隨手畫的,大概是這個意思),所以刪除三天前的文件要用+2
5. -exec 表示需要執行的命令,{}代表find找到的內容,"\;"是固定寫法表示結束-exec,
所以例子的"-exec rm {} \;" 就表示對find找到的符合條件的文件執行刪除操作
❷ 在Linux中如何刪除指定日期之前的一些文件
假如在一個目錄中保留最近30天的文件,30天前的文件自動刪除;
#find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} ;/tmp –設置查找的目錄;
1、mtime +30 –設置時間為30天前;
2、type f –設置查找的類型為文件;
3、name *.sh[ab] –設置文件名稱中包含sha或者shb;
4、exec rm -f –查找完畢後執行刪除操作;
提示:將此命令寫入crontab後即可自動完成查找並刪除的工作。
另外的方法大同小異:#find /tmp -mtime +30 -type f | xargs rm -rf。
❸ linux刪除30天前文件命令
1.刪除文件命令:
find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} ;
實例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} ;
說明:
將/opt/soft/log/目錄下所有30天前帶".log"的文件刪除。具體參數說明如下:
find:linux的查找命令,用戶查找指定條件的文件;
/opt/soft/log/:想要進行清理的任意目錄;
-mtime:標准語句寫法;
+30:查找30天前的文件,這里用數字代表天數;
"*.log":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除文件,包括目錄;
{} ; :固定寫法,一對大括弧+空格++;
2.計劃任務:
若嫌每次手動執行語句太麻煩,可以將這小語句寫到一個可執行shell腳本文件中,再設置cron調度執行,那就可以讓系統自動去清理相關文件。
2.1創建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一個可執行文件auto-del-30-days-ago-log.sh,並分配可運行許可權
2.2編輯shell腳本:
vi auto-del-30-days-ago-log.sh
編輯auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} ;
ok,保存退出(:wq)。
2.3計劃任務:
#crontab -e
將auto-del-30-days-ago-log.sh執行腳本加入到系統計劃任務,到點自動執行
輸入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
這里的設置是每天凌晨0點10分執行auto-del-7-days-ago-log.sh文件進行數據清理任務了。
❹ linuxfind查找大於多少天的文件,並刪除之
linux查找超過一定時間的文件,並批量刪除
1、find . -maxdepth 4 -name "*-*" -mtime 3
-maxdepth的值決定是否對下面的子目錄進行遞歸查找
-mtime 3表示查找3天內的,-mtime +3表示查找超過3天的,也就是查找3天前的文件
2、find . -maxdepth 4 -name "*-*" -mtime 3 | sudo xargs rm -rf
-----------------------------------------------------------------------------------------------------------------------------
find ./ -maxdepth 4 -mtime +3 -a -mtime -20 -type f
-- 如果將xmaxdepth放置於-mtime之後,將會拋出這個錯誤
find: warning: you have specified the -maxdepth option after a non-option argument -mtime, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-----------------------------------------------------------------------------------------------------------------------------
-mtime 0 表示文件修改時間距離當前為0天的文件,即距離當前時間不到1天(24小時)以內的文件。
-mtime 1 表示文件修改時間距離當前為1天的文件,即距離當前時間1天(24小時-48小時)的文件。
-mtime+1 表示文件修改時間為大於1天的文件,即距離當前時間2天(48小時)之外的文件
-mtime -1 表示文件修改時間為小於1天的文件,即距離當前時間1天(24小時)之內的文件
-----------------------------------------------------------------------------------------------------------------------------
-maxdepth 參數詳解
-maxdepth選項的作用就是限制find命令在目錄中按照遞減方式查找文件的時候搜索文件超過某個級別或者搜索過多的目錄,這樣導致查找速度變慢,查找花費的時間過多。例如,我們要在當前(.)目錄技巧子目錄中查找一個名叫fred的文件,我們可以使用如下命令
find . -maxdepth 2 -name fred
假如這個fred文件在./sub1/fred目錄中,那麼這個命令就會直接定位這個文件,查找很容易成功。假如,這個文件在./sub1/sub2/fred目錄中,那麼這個命令就無法查找到。因為前面已經給find命令在目錄中最大的查詢目錄級別為2,只能查找2層目錄下的文件。這樣做的目的就是為了讓find命令更加>
精確的定位文件,如果你已經知道了某個文件大概所在的文件目錄級數,那麼加入-maxdepth n 就很快的能在指定目錄中查找成功。
也即是-maxdepth 參數指定遞歸查找級別,如果-maxdepth 2 則查找當前目錄遞歸查找2層,-maxdepth 4 則查找當前目錄遞歸查找4層。
❺ linux如何刪除某個時間之前的過期文件,在一個文件夾內部的
find 命令可以完成這一需求,比如刪除3天前的所有以「.log」結尾的文件回:
find /文件路徑 -name "*.log" -mtime +2 -exec rm {} ;
說明:
1. 文件路徑是答目標文件所在路徑;
2. -name 設定目標文件名,建議採用,否則可能誤刪其他文件;
3. -ctime 文件最後一次修改時間,後面只能用整數,單位為天,同時,還有atime,mtime,amin,cmin,mmin等時間參數可選,具體請查看幫助;
4. 時間說明如下圖(隨手畫的,大概是這個意思),所以刪除三天前的文件要用+2
5. -exec 表示需要執行的命令,{}代表find找到的內容,";"是固定寫法表示結束-exec,
所以例子的"-exec rm {} ;" 就表示對find找到的符合條件的文件執行刪除操作
❻ 在Linux中如何刪除指定日期之前的一些文件
假如在一個目錄中保留最近30天的文件,30天前的文件自動刪除:#find /tmp -mtime 30 -type f -name *.sh[ab] -exec rm -f 馨予裝飾畫這里版的裝飾畫就挺值得權選擇的() ;/tmp –設置查找的目錄;-mtime 30 –設置時間為30天前;-type f –設置查找的類型為文件;-name *.sh[ab] –設置文件名稱中包含sha或者shb;-exec rm -f –查找完畢後執行刪除操作;提示:將此命令寫入crontab後即可自動完成查找並刪除的工作另外的方法大同小異:#find /tmp -mtime 30 -type f | xargs rm –rf,另外你是感興趣的話可以看下劉遄老師寫的《Linux就該這么學》作為入門的書籍,覺得不錯的話採納下哦~
❼ linux系統如何自動刪除幾天前文件夾
肯定是用腳本命令去刪除了,比如crontab自動執行,或者用腳本觸發
方法很多,
你可以有針對性的,如
rm -rf <文件>
❽ Linux下,如何將最後修改時間在某個時間之前的文件刪除掉
noneki網友復回答得不錯!制
第一步touch是要建立一個最後修改時間為「 1月1號,0分0秒的」的比對文件time_file,
第二步, 用find查找,比time_file 「不」新的所有文件,然後刪除。
提示:如果是要根據修改時間,則把newer改成cnewer,如果是根據訪問時間,則把newer改為anewer
❾ Linux刪除若干天前的文件夾
find /home/dir -mtime +3 -exec rm -rf {} \;
❿ linux什麼命令可以根據日期刪除文件
需要根據時間刪除這個目錄下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的無效數據。
可以使用下面一條命令去完成:
1find/home/lifeccp/dicom/studies-mtime +21 -name "*.*"-execrm-Rf {} ;
這個是根據時間刪除。
下面簡要解釋一下,這句shell命令:
1find/home/lifeccp/dicom/studies-mtime +21 -name "*.*"-execrm-Rf {} ;
/home/lifeccp/dicom/studies :准備要進行清理的任意目錄
-mtime:標准語句寫法
+10:查找10天前的文件,這里用數字代表天數,+30表示查找30天前的文件
"*.*":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件
-exec:固定寫法
rm -rf:強制刪除文件,包括目錄
{} ; :固定寫法,一對大括弧+空格+/+;
當然也可以根據文件名、根據大小,根據其他不同條件過濾刪除,或者修改等,可以考慮sort等命令結合使用。