在本文中,我們将解釋兩個簡單的指令行小技巧,它可以幫你隻列出所有的今天的檔案。
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"
在 linux 中找出今天修改的檔案
在本文中,我們解釋了如何使用 ls 和 find 指令幫助隻列出今天的檔案。 請使用以下回報欄向我們發送有關該主題的任何問題或意見。 你也可以提醒我們其他可以用于這個目的的指令。
作者:aaron kili
來源:51cto