Linux

find 命令預設排序順序

  • March 4, 2019

linux find 命令返回的條目的預設排序順序是什麼?

例如,如果我發出

find . -type f -name '*mp3' 

並且輸出由多個子文件夾中的多個文件組成,列出目錄的預設順序是什麼?同時,列出單個目錄中的文件的排序順序是什麼?

有時它會返回:

./B/01.mp3
./A/01.mp3
./A/04.mp3
./A/02.mp3

看看如何首先列出目錄 B 的內容,然後列出目錄 A 的內容。同時在目錄 A 中,文件以有趣的順序列出。

find將遍歷目錄樹中的順序項儲存在目錄條目中。這將(大部分)在同一台機器上從執行到執行是一致的,並且如果沒有刪除,則本質上將是“文件/目錄創建順序”。

然而,一些文件系統將重新排序目錄條目作為壓縮操作的一部分,或者當條目的大小需要擴展時,因此“原始”順序總是有很小的機會隨著時間的推移而改變。如果您想要一致的順序,請通過額外的排序階段提供輸出。

引用自:https://serverfault.com/questions/181787