萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux find -mtime 參數深度解析:+n、-n、n 三種時間範圍差異

find -mtime 依檔案資料最後修改時間篩選,但 +n、-n、n 三種寫法含義截然不同,誤用會導致誤刪或遺漏。本文以時間軸圖解析差異。

定義

  • n 為整數,單位為「24 小時」(非曆日)。
  • 基準點:命令執行當下。

三種寫法對照(假設現在 15 日 12:00)

-mtime +1-mtime -1-mtime 1
寫法含義涵蓋範圍(以 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:比指定檔案新
copyright © 萬盛學電腦網 all rights reserved