find 按檔案修改時間查詢檔案及find空資料夾

G8bao7發表於2015-08-31


查詢兩天前修改過的檔案:
find . -type f -mtime -2

查詢3天內修改過的檔案:
find -ctime -3

find命令使用超過6天,空檔案獨立查詢命令:
find /data/backup -ctime +6 -delete   刪除/data/backup目錄下修改時間超過6天的檔案。  
find /data/backup -type d -empty -delete >/dev/null 2>&1  刪除/data/backup目錄下空的資料夾,同時輸出正確和錯誤資訊到空。

查詢超過6天且是空檔案的find命令:
find ./ -type d -empty -ctime +6

按修改時間來查詢檔案,要用到選項-mtime:
find /home/admin -mtime -1      #查詢/home/admin目錄下修改時間在1天之內的檔案
find /home/admin -name *.txt -mtime -1  #查詢/home/admin目錄下修改時間在1天之內的檔名為.txt結尾的檔案

find 按檔案修改時間查詢檔案
---(+n)----------|----------(n)----------|----------(-n)---
      (n+1)*24H前|   (n+1)*24H~n*24H間   |n*24H內

-ctime -n    查詢距現在 n*24H 內修改過的檔案
-ctime n    查詢距現在 n*24H 前, (n+1)*24H 內修改過的檔案
-ctime +n    查詢距現在 (n+1)*24H 前修改過的檔案

[a|c|m]min    [最後訪問|最後狀態修改|最後內容修改]min
[a|c|m]time    [最後訪問|最後狀態修改|最後內容修改]time

linux 檔案的三種時間(以 find 為例):
atime 最後一次訪問時間, 如 ls, more 等, 但 chmod, chown, ls, stat 等不會修改些時間, 使用 ls -utl 可以按此時間順序檢視;
ctime 最後一次狀態修改時間, 如 chmod, chown 等狀態時間改變但修改時間不會改變, 使用 stat file 可以檢視;
mtime 最後一次內容修改時間, 如 vi 儲存後等, 修改時間發生改變的話, atime 和 ctime 也相應跟著發生改變.

注意:
linux 裡是不會記錄檔案的建立時間的,除非這個檔案自建立以來沒有發生改變,那麼它的建立時間就是它的最後一次修改時間。
#ls -lt /home/admin   # 按修改時間順序檢視
#ls -lut /home/admin  # 按訪問時間順序檢視
(如果想反序檢視的話需要加一個選項 -r)


參考

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-1787136/,如需轉載,請註明出處,否則將追究法律責任。

相關文章