bingooyong / note

1 stars 1 forks source link

对文件系统的思考 #46

Open bingooyong opened 3 years ago

bingooyong commented 3 years ago

ls 为什么会慢

默认情况下,ls 命令会将输出排序。为了排序,ls 命令先将所有文件的名称读入内存。当遇到一个非常大的目录时,它就在那里不断地读入文件名,并且内存占用越来越大,直到将所有文件一次性以字母数字顺序列出来。 而 ls -1 -f 命令并不执行排序操作,只是读取目录然后立即显示文件。

bingoohuang commented 3 years ago

https://github.com/wertarbyte/coreutils/blob/master/src/ls.c

sort_type = sort_name; 默认按名字排序

验证

[d5k@VM-0-7-centos ~]$ ls
bin  bingoohuang  go  mls202104  run
[d5k@VM-0-7-centos ~]$ touch a001
[d5k@VM-0-7-centos ~]$ ls
a001  bin  bingoohuang  go  mls202104  run
[d5k@VM-0-7-centos ~]$ touch z001
[d5k@VM-0-7-centos ~]$ ls
a001  bin  bingoohuang  go  mls202104  run  z001