发布网友 发布时间: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
很难说的区别是什么,尤其是当你没有指定什么操作系统比较。
不同的操作系统和不同版本的公用事业,如发现可能会有所不同行动。
有功能的问题,或只是好奇吗?