如何在 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"
在 Linux 中找出今天修改的文件
你可以在我們的下麵一係列文章中獲得 ls
和 find
命令的更多使用信息。
原文發布時間為:2017-01-06
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-31 10:32:30