unix'find'每次都会给出相同的订单吗?

时间:2013-07-01 19:21:32

标签: linux bash filesystems

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

换句话说,如果我跑

$ find foo

它给了我

bar.txt
foo.txt

我能指望它永远不会给我

foo.txt
bar.txt

2 个答案:

答案 0 :(得分:3)

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

您想要文件的顺序是什么?做出决定,然后使用find命令(可能通过管道输入sort),可以重复获得所需的结果。

答案 1 :(得分:0)

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

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

如果您想要可重复的订单,请对结果进行排序。如果没有文件名包含换行符,find … | sort会很好。