linux下find 结果的默认排序是如何呢?

发布网友 发布时间:2022-02-26 12:02

我来回答

3个回答

热心网友 时间:2022-02-26 13:32

find test.0.0/* 这种是很好理解的,先根据通配符匹配(默认匹配顺序是按字母顺序),然后再find。比如*匹配到test.0.0/dict.list 然后再find test.0.0/dict.list 所以是按字母排序的。

find test.0.0/ 这种则涉及到linux中文件名在超级块中的存储方式(spuer_block):为了快速找到一个文件,我们通常会使用hash算法,和B树算法(二叉树算法)在超级块存储文件名(与inode对应),find就是根据B树遍历查找的。

具判断楼主机子应该是左遍历挂文件名,右遍历查找文件名。附上一张图帮助理解,数字代表遍历的先后1->2->3->4.(关键字:二叉树遍历)

这只是鄙人的浅见。

热心网友 时间:2022-02-26 14:50

find查询返回的结果是根据搜索条件,找到一个匹配的项就立即输出结果,即一边查找一边输出,因此查找到的内容根据系统当前情况很可能不是一次性输出的,所以可能就没有统一排序

你可以用sort调整你要的排序,如:find test.0.0/ | sort

热心网友 时间:2022-02-26 16:24

很难说的区别是什么,尤其是当你没有指定什么操作系统比较。

不同的操作系统和不同版本的公用事业,如发现可能会有所不同行动。

有功能的问题,或只是好奇吗?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com