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


 

在本文中,我們將解釋兩個簡單的命令行小技巧,它可以幫你只列出所有的今天的文件。

Linux 用戶在命令行上遇到的常見問題之一是定位具有特定名稱的文件,如果你知道確定的文件名則可能會容易得多。

不過,假設你忘記了白天早些時候創建的文件的名稱(在你包含了數百個文件的 home 文件夾中),但現在你有急用。

下面用不同的方式只列出所有你今天創建或修改的文件(直接或間接)。

 

1、 使用 ls 命令,只列出你的 home 文件夾中今天的文件。

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

其中:

  • -a - 列出所有文件,包括隱藏文件
  • -l - 啟用長列表格式
  • --time-style=FORMAT - 顯示指定 FORMAT 的時間
  • +%D - 以 %m/%d/%y (月/日/年)格式顯示或使用日期

在Linux中找出最近的文件

 

此外,你使用可以 -X 標志來按字母順序對結果排序

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

你也可以使用 -S 標志來基於大小(由大到小)來排序:

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

 

 

2、 另外,使用 find 命令會更靈活,並且提供比 ls 更多的選項,可以實現相同的目的。

  •  -maxdepth 級別用於指定在搜索操作的起點下(在這個情況下為當前目錄)的搜索層級(子目錄層級數)。
  •  -newerXY,用於所尋找的文件的時間戳 X 比參照文件的時間戳 Y 更新一些的文件。 X 和 Y 表示以下任何字母:      - a - 參照文件的訪問時間      - B - 參照文件的創建時間      - c - 參照文件的 inode 狀態改變時間      - m - 參照文件的修改時間      - t - 直接指定一個絕對時間

下面的命令意思是只找出 2016-12-06 這一天修改的文件:

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

在 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"
或者
# find . -maxdepth 1 -newermt "12/06/16"

 

 

你可以在我們的下面一系列文章中獲得 ls和 find 命令的更多使用信息。

在本文中,我們解釋了如何使用 ls 和 find 命令幫助只列出今天的文件。 請使用以下反饋欄向我們發送有關該主題的任何問題或意見。 你也可以提醒我們其他可以用於這個目的的命令。

 

 

 

轉 : https://linux.cn/article-8093-1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM