如何在Linux中查找最近或今天修改的文件

在本文中,我們將解釋兩個簡單的命令列提示,讓您只列出今天的所有檔案。

Linux 使用者在命令列上遇到的常見問題之一是尋找特定名稱的檔案,當您實際知道檔案名稱時,這將變得更容易。

然而,假設您忘記了您在當天早些時候創建的檔案名稱(在您的home資料夾中包含數百個檔案),但您卻急需使用。

以下是僅列出您今天創建或修改的所有檔案的不同方法。

1. 使用ls 命令,您可以像下面這樣僅列出今天在您的 home 資料夾中的檔案,其中:

  1. -a – 列出所有檔案,包括隱藏檔案
  2. -l – 啟用長列表格式
  3. --time-style=FORMAT – 以指定的 FORMAT 顯示時間
  4. +%D – 以 %m/%d/%y 格式顯示/使用日期
# ls  -al --time-style=+%D | grep 'date +%D'
Find Recent Files in Linux

另外,您可以按字母順序排序結果清單,通過加入 -X 旗帜:

# ls -alX --time-style=+%D | grep 'date +%D'

您也可以根據大小(從大到小)列印,使用 -S 旗帜:

# ls -alS --time-style=+%D | grep 'date +%D'

2. 同樣,您可以使用尋找命令,這比ls 命令更具有弹性並提供許多選項,用於相同目的。

  1. -maxdepth 等級用於指定從起點(目前目錄)以下幾層(在子目錄方面)的搜索操作。
  2. -newerXY,如果時間戳X時間戳Y新,這將不起作用。X 和 Y 代表以下字母的任何一個:
    1. a – 文件引用
    2. 的存取時間
      B – 文件引用的出生時間

    3. c – 引用文件
    4. 的 inode 狀態更改時間
      m – 文件引用的修改時間
      t – 直接將引用解釋為時間

這意味著,只有2016-12-06修改过的文件將被考慮:

# find . -maxdepth 1 -newermt "2016-12-06"
Find Today’s Files in Linux

重要:在find命令中引用正確的日期格式,一旦使用了錯誤的格式,您將會得到下方的錯誤:

# find . -maxdepth 1 -newermt "12-06-2016"

find: I cannot figure out how to interpret '12-06-2016' as a date or time

另外,您可以使用下述正確的格式:

# find . -maxdepth 1 -newermt "12/06/2016"
OR
# find . -maxdepth 1 -newermt "12/06/16"
Find Todays Modified Files in Linux

您可以在我們以下的系列文章中取得lsfind命令的更多使用資訊。

  1. 透過這15個範例精通Linux的‘ls’命令
  2. Linux用戶的7個實用‘ls’技巧
  3. 透過這35個範例精通Linux的‘find’命令
  4. 在Linux中查找具有特定副檔名的多個文件名的方法

在本文中,我們解釋了如何利用lsfind命令列出今天的文件的兩個重要提示。請利用下方反饋表單傳送任何有關主題的問題或評論。您也可以告知我們任何達到相同目標的命令。

Source:
https://www.tecmint.com/find-recent-modified-files-in-linux/