Linux 查詢某一個時間點之後修改或建立的檔案


要在 Linux 中找到某一個時間點之後修改或建立的檔案,可以使用 find 指令,結合 -newermt 參數來達成。以下是指令範例:

find /path/to/search -type f -newermt "YYYY-MM-DD HH:MM:SS"
  • /path/to/search 是你想要搜尋的目錄路徑。
  • -type f 表示只搜尋檔案(不包括目錄)。
  • -newermt 用來指定一個具體的時間點(格式為 "YYYY-MM-DD HH:MM:SS"),find 會返回該時間點之後的所有檔案。

例如,若你想找出 /home/user/docs 目錄中,2024 年 8 月 10 日下午 2 點之後修改或建立的檔案,可以使用以下指令:

find /home/user/docs -type f -newermt "2024-08-10 14:00:00"

這個指令會列出所有符合條件的檔案。

在 Linux 中,你可以使用 find 命令來刪除某一時間點之前的檔案。以下是刪除某一時間點之前的檔案的具體步驟:

1. 查找並刪除特定時間之前的檔案

假設你要刪除在特定日期之前(例如:2023-01-01)的所有檔案,可以使用以下命令:

find /path/to/directory -type f -not -newermt "2023-01-01" -delete
  • /path/to/directory:要查找的目錄。
  • -type f:只查找文件(不包括目錄)。
  • -not -newermt "2023-01-01":查找在指定日期之前修改的文件。
  • -delete:刪除查找到的文件。

2. 刪除 X 天之前的檔案

如果你想刪除 X 天之前的檔案,可以使用 -mtime 參數。下面的命令將刪除 30 天之前的所有檔案:

find /path/to/directory -type f -mtime +30 -delete
  • -mtime +30:查找修改時間在 30 天之前的文件。

3. 先列出將要刪除的檔案(可選)

在刪除檔案之前,你可能想先確認哪些檔案將被刪除。只需移除 -delete,並使用 -printls 來列出文件:

find /path/to/directory -type f -not -newermt "2023-01-01" -print

find /path/to/directory -type f -mtime +30 -ls

這樣可以讓你確保刪除的文件是正確的。

4. 刪除特定類型的檔案

如果你只想刪除特定類型的檔案(例如 .log 文件),可以這樣做:

find /path/to/directory -type f -name "*.log" -not -newermt "2023-01-01" -delete

這個命令只會刪除在 2023-01-01 之前修改的 .log 文件。

注意事項

  • 小心使用 -delete:該命令執行後無法恢復,確保命令正確無誤後再執行。
  • 備份重要數據:在執行批量刪除操作之前,建議備份重要數據。

這些命令可以幫助你根據修改時間來管理和清理系統中的文件。


WordPress Appliance - Powered by TurnKey Linux