我在目录中有几个文件:
$ ls | wc -l
9376
谁能解释为什么使用ls *
和会有如此大的时差ls
?
$ time ls > /dev/null
real 0m0.118s
user 0m0.106s
sys 0m0.011s
和
$ time ls * > /dev/null
real 1m32.602s
user 0m0.233s
sys 0m0.438s
好的,这是一个极好的示例,并且可能会得到增强,因为该目录位于通用并行文件系统(GPFS)上。但是我还可以看到本地文件系统的显着速度下降。
编辑:
$ time ls -l > /dev/null
real 0m58.772s
user 0m0.113s
sys 0m0.452s
$ time ls -l * > /dev/null
real 1m19.538s
user 0m0.252s
sys 0m0.461s
并且我应该在示例中添加没有子目录:
$ diff <(ls) <(ls *)
$
ls
它可以询问文件系统“ inode的子代是什么pwd
”在哪里ls *
它必须询问“ inode的子代(以及文件是什么)a
”,后跟b,c,d等。一个查询与很多查询。