find -mtime 依檔案資料最後修改時間篩選,但 +n、-n、n 三種寫法含義截然不同,誤用會導致誤刪或遺漏。本文以時間軸圖解析差異。
n 為整數,單位為「24 小時」(非曆日)。| 寫法 | 含義 | 涵蓋範圍(以 15 日 12:00 為基準) |
|---|---|---|
| 修改時間 超過 1 天前(> 24h) | 13 日 12:00 之前(不含 14 日) | |
| 修改時間 在 1 天內(< 24h) | 14 日 12:00 至 15 日 12:00 | |
| 修改時間 剛好 1 天前(24h~48h) | 13 日 12:00 至 14 日 12:00 |
+n = 「更久以前」(older than n days)-n = 「最近 n 天內」(newer than n days)n = 「正好第 n 天前」(exactly n days ago)# 刪除 7 天前(不含第 7 天)的 .log 檔
find /var/log -name '*.log' -mtime +7 -delete
# 找出最近 24 小時內異動的設定檔
find /etc -type f -mtime -1 -name '*.conf'
# 備份剛好 3 天前建立的資料
find /data -mtime 3 -exec cp -a {} /backup/ \;
-atime:最後存取時間-ctime:最後狀態改變時間(inode 變更)-mmin/-amin/-cmin:以分鐘為單位-newer file:比指定檔案新