閱讀32 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

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

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

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

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

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


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

其中:

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

在Linux中找出最近的文件

在Linux中找出最近的文件

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


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

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


  1. # 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 這一天修改的文件:


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

在 Linux 中找出今天的文件

在 Linux 中找出今天的文件

重要:在上麵的 find 命令中使用正確的日期格式作為參照時間,一旦你使用了錯誤的格式,你會得到如下錯誤:


  1. # find . -maxdepth 1 -newermt "12-06-2016"
  2. find: I cannot figure out how to interpret '12-06-2016' as a date or time

或者,使用下麵的正確格式:


  1. # find . -maxdepth 1 -newermt "12/06/2016"
  2. 或者
  3. # find . -maxdepth 1 -newermt "12/06/16"

在 Linux 中找出今天修改的文件

在 Linux 中找出今天修改的文件

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

原文發布時間為:2017-01-06

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-31 10:32:30

  上一篇:go  《Spring實戰(第4版)》——1.2 容納你的Bean
  下一篇:go  從源代碼編譯 Vim 8.0