天天看點

如何在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中找出最近或今天被修改的檔案

在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中找出最近或今天被修改的檔案

在 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" 

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

在 linux 中找出今天修改的檔案

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

作者:aaron kili

來源:51cto

繼續閱讀