2013-07-01 39 views
2

如果我運行find(特別是Ubuntu),我是否期望它每次都能給出相同的結果順序? (假設,當然,實際的文件並沒有改變。)unix'find'每次都給出相同的順序嗎?

換句話說,如果我跑

$ find foo 

,這讓我

bar.txt 
foo.txt 

我可以期望它永遠不會給我

foo.txt 
bar.txt 

回答

3

答案是「很可能」,但你不應該依賴它,因爲任何數量的東西都會影響它。

你想要什麼命令文件?決定,然後使用一個find命令(也許管道到sort),它可重複地得到你需要的結果。

+0

這是一個很好的電話。訂單對我來說並不重要,只要它是一樣的;所以通過任何不會改變的內容(例如,文件名)進行排序都可以。 – mfrankli

0

文件的順序由文件系統格式和文件系統驅動程序的細節決定。你不能依靠它。根據文件系統和操作系統,以下是可能會更改順序的內容:

  • 在遍歷目錄中創建或刪除文件(即使沒有列出的文件發生更改)。
  • 文件被移動(例如轉移到不同的文件系統或從備份恢復)。
  • 運行碎片整理程序或文件系統檢查並決定移動東西。

如果您想要一個可重現的訂單,請對結果進行排序。如果沒有任何文件名包含換行符,則find … | sort會很好地執行。

相關問題