3

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

换句话说,如果我跑

$ find foo

它给了我

bar.txt
foo.txt

我能指望它永远不会给我吗

foo.txt
bar.txt

?

4

2 回答 2

4

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

您希望文件按什么顺序排列?决定这一点,然后使用一个find命令(可能通过管道输入sort),它可以重现地获得你需要的结果。

于 2013-07-01T19:26:00.270 回答
0

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

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

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

于 2013-07-02T10:09:03.023 回答