如何在Linux系統中查詢目錄下最新的檔案?
Linux 的 find 命令是最常用的命令之一,它允許我們遍歷檔案層次結構。它主要用於查詢特定檔案或目錄,我們還可以附加其他 Linux 命令或標誌來增強或執行復雜操作。
讓我們來看一個 find 命令的例子來更好地理解它。
在下面的 Linux 程式碼中,我嘗試在我的“下載”資料夾中搜索一個檔案,為此我使用了 find 命令。
find sample.sh
輸出
sample.sh
請注意,如果 find 命令能夠找到該檔案,它將只打印檔名;如果找不到,則不會返回任何內容,終端程序將終止。
現在我們知道了 find 命令的工作原理,讓我們來看看如何使用 find 命令查詢目錄中最近更新的檔案。
假設一個名為 dir1 的目錄包含以下檔案。
immukul@192 dir1 % ls -ltr total 5232 -rwxrwxrwx 1 immukul staff 446966 Sep 23 1998 wget-1.5.3.tar.gz drwxrwxrwx 3 immukul staff 96 Jul 7 17:42 d1 -rwxrwxrwx 1 root staff 106 Jul 8 13:10 sample2.sh -rwxrwxrwx 1 root staff 946 Jul 12 18:45 sample.sh -rwxrwxrwx 1 root staff 718 Jul 12 18:48 sample1.sh drwxr-xr-x 2 immukul staff 64 Jul 13 11:36 dr1 drwxr-xr-x 3 immukul staff 96 Jul 13 11:36 dr2 -rw-r--r-- 1 immukul staff 661 Jul 14 09:00 newZip.zip -rw-r--r-- 1 immukul staff 2201512 Jul 14 09:19 zipContent.zip -rwxrwxrwx 1 immukul staff 24 Jul 14 15:52 sss.sh -rw-r--r-- 1 immukul staff 122 Jul 14 16:10 somefile.txt -rw-r--r-- 1 immukul staff 0 Jul 15 09:44 sample 1.txt drwxrwxrwx 4 immukul staff 128 Jul 15 10:27 d2
由於 ls 命令的輸出不是很大,我們可以手動比較上述目錄中所有檔案的更新時間,找到最近更新的檔案,但是如果檔案數量巨大,這種方法就不可行了,因為逐個檢查所有檔案的時間將非常繁瑣。
更好的方法是使用以下命令。
命令
適用於 macOS −
find . -type f -exec stat -lt "%Y-%m-%d" {} \+ | cut -d' ' -f6- | sort -n | tail -1適用於其他基於 Linux 的作業系統 −
find . -type f -printf "%T@ %p
" | sort -n | cut -d' ' -f 2- | tail -n 1
輸出
2021-07-15 ./sample 1.txt
另一種方法是使用 ls 命令,如下所示。
命令
ls -Art | tail -n 1
輸出
sample 1.txt
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP