Unix的“find”命令每次给出相同的顺序吗?

4
如果我运行find(特指Ubuntu),我能否期望每次都得到相同顺序的结果?(当然,假设实际文件没有改变。)
换句话说,如果我运行:
$ find foo

并且它给我提供了
bar.txt
foo.txt

我能期望它永远不会给我带来

foo.txt
bar.txt

?

2个回答

5
答案可能是“可能”,但你不应该依赖它,因为许多事情都会影响它。
您想要文件的什么顺序?确定后使用一个`find`命令(可能被引导到`sort`)来可复现地获得所需结果。

这是一个很好的调用。对我来说,顺序实际上并不重要,只要它是相同的;因此,按任何不会改变的东西进行排序(例如文件名)都可以。 - mfsiega

1
文件的顺序取决于文件系统格式和文件系统驱动程序的细节。您不能依赖它。根据文件系统和操作系统,以下是可能改变顺序的事项:
- 在遍历的目录中创建或删除文件(即使未更改任何列出的文件)。 - 文件被移动(例如转移到不同的文件系统或从备份中恢复)。 - 运行碎片整理器或文件系统检查,并决定移动文件。
如果您想要可重现的顺序,请对结果进行排序。find … | sort 如果没有文件名包含换行符,则可以很好地完成这项工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接