2013-07-01 40 views
2

如果我运行find(特别是Ubuntu),我是否期望它每次都能给出相同的结果顺序? (假设,当然,实际的文件并没有改变。)unix'find'每次都给出相同的顺序吗?

换句话说,如果我跑

$ find foo 

,这让我

bar.txt 
foo.txt 

我可以期望它永远不会给我

foo.txt 
bar.txt 

回答

3

答案是“很可能”,但你不应该依赖它,因为任何数量的东西都会影响它。

你想要什么命令文件?决定,然后使用一个find命令(也许管道到sort),它可重复地得到你需要的结果。

+0

这是一个很好的电话。订单对我来说并不重要,只要它是一样的;所以通过任何不会改变的内容(例如,文件名)进行排序都可以。 – mfrankli

0

文件的顺序由文件系统格式和文件系统驱动程序的细节决定。你不能依靠它。根据文件系统和操作系统,以下是可能会更改顺序的内容:

  • 在遍历目录中创建或删除文件(即使没有列出的文件发生更改)。
  • 文件被移动(例如转移到不同的文件系统或从备份恢复)。
  • 运行碎片整理程序或文件系统检查并决定移动东西。

如果您想要一个可重现的订单,请对结果进行排序。如果没有任何文件名包含换行符,则find … | sort会很好地执行。

相关问题