如何對find的輸出進行排序?

如何對find的輸出進行排序?

我正在使用 find 命令列出名稱包含字串的檔案: find ~/ -type f -name "*inductive*" 我想使用管道對生成的檔案清單進行排序。我希望能夠按檔案大小、建立日期、存取日期進行排序...我該怎麼做?謝謝。

答案1

在 Linux 中不可能按建立時間對輸出進行排序(ctime不是檔案建立日期)。stat能夠顯示文件的出生時間使用%w%W格式標籤,但它們始終分別顯示-0,即使在儲存建立時間/出生時間的檔案系統上也是如此。因此,它在 Linux 上實際上沒有任何用處。

不過,其他兩種排序順序也是可能的:

# Sort by size:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 5 -n

# Sort by access time:
find ~/ -type f -name "*inductive* -exec ls -ltu {} \; | sort -k 6 -M

您可以新增-r標誌來sort反轉排序順序。請參閱man sort以獲取更多資訊。

根據 的find輸出大小,可能需要一些時間才能sort產生已排序的輸出。

相關內容