1.1 語法:
使用find命令和rm命令結合使用刪除指定時間的檔案
--時間單位為天
find 查詢路徑 -ctime/-mtime/-atime 時間範圍 -name 檔名稱 -type f -exec rm
\;--時間單位為分鐘
find 查詢路徑 -cmin/-mmin/-amin 時間範圍 -name 檔名稱 -type f -exec rm
\;
1.2 示例:--刪除/home/testfile目錄下修改時間大於2天,字尾為.dat的檔案
find /home/testfile -mtime +2 -name "*.dat" -type f -exec rm
\;
特別說明:如果檔名稱使用模糊查詢,則需要對檔名部分使用雙引號,如上述示例,否則會出現如下錯誤資訊:
find: paths must precede expression
usage: find
[-h]
[-l]
[-p]
[path...]
[expression]
linux為我們提供了乙個簡便的查詢方式,那就是 +n 和 -n。下面以 -mtime 舉例說明:
-mtime n : n為數字,意思為在n天之前的「一天之內」被更改過內容的檔案
-mtime +n : 列出在n天之前(不含n天本身)被更改過內容的檔名
-mtime -n : 列出在n天之內(含n天本身)被更改過內容的檔名
找 「5天之內被更改過的檔案」 就是 find / -mtime -5 ,找「5天前的那一天被更改過的檔案」 就是 find / -mtime 5 ,找「5天之前被更改過的檔案」 就是 find / -mtime +5。接下來用圖示說明:
由這個時光軸我們可以知道,最右邊為當前時,+5 代表大於等於 6 天前的檔案, -5 代表小於等於 5 天內的檔案,5 則是代表 5-6 那一天的檔案。
關於find命令使用時間篩選檔案說明,可以參考如下部落格:
linux常用命令之 查詢命令 find —— 細說 -atime,-mtime,-ctime - isqiao -
當需要刪除的單個檔案比較小時,可以使用第一節的常規方法刪除檔案。
當需要刪除的單個檔案比較大時,使用rm命令刪除後可能會出現磁碟空間不釋放的情況。此時的處理思路如下:
第一步:查詢需要刪除的大檔案並將內容清空
沒有使用find命令時,可以使用如下方法清空檔案內容(此處以test.txt為例)
echo
''> test.txt
cat /dev/null > test.txt
> test.txt
cp /dev/null test.txt
dd if=/dev/null of=test.txt
truncate -s 0 test.txt
如果需要和find命令結合,則無法使用echo命令,但是可以使用truncate命令,如下示例查詢/home/testfile目錄下修改時間大於2天,字尾為dat的檔案,並將其內容清空:
find /home/testfile -mtime +2 -name "*.dat" -type f -exec truncate -s 0 \;
【關於truncate命令】:關於快速刪除大檔案的方法可以參考如下部落格:truncate 可被用來將乙個檔案縮小或者擴充套件到某個給定的大小。你可以利用它和 -s 引數來特別指定檔案的大小。要清空檔案的內容,則將檔案的大小設定為 0即可
linux 下清空或刪除大檔案/大量檔案的幾種方法_運維_sd4493091的部落格-csdn部落格
第二步:刪除檔案大小為0的檔案
檔案內容清空後,將其刪除
find /home/testfile -name "*.dat" -type f -size 0 -exec rm
\;
特別說明:此處不能再使用與第一步相同的時間範圍框定,因為truncate操作後的檔案的mtime時間已經發生變化
若相同路徑下已經存在大小為0、相同字尾但不能被刪除的檔案不適用此方法
find命令 之查詢指定時間內修改過的檔案
比如我們要查詢linux下指定時間內做過改動的檔案,我們可以用find命令,其實find命令的功能十分強大,下面我們通過幾個簡單的例子來學習下find命令的簡單用法 find opt iname atime 1 type f 找出 opt 下一天前訪問過的檔案 選項 options 所有的選項都總是...
find命令 之查詢指定時間內修改過的檔案
比如我們要查詢linux下指定時間內做過改動的檔案,我們可以用find命令,其實find命令的功能十分強大,下面我們通過幾個簡單的例子來學習下find命令的簡單用法 find opt iname atime 1 type f 找出 opt 下一天前訪問過的檔案 選項 options 所有的選項都總是...
mysql 指定時間 MySQL查詢指定時間的資料
mysql查詢指定時間的資料 user event 使用者事件表 create time 表中儲存時間的字段 獲取當月資料 select from user event where date format create time,y m date format now y m 獲取3月份資料 sel...