ls -R 和 tree 中哪个命令更快?

ls -R 和 tree 中哪个命令更快?

我想列出所有目录中的所有文件并将其保存到文本文件中,以便出于各种原因保留记录。

我拥有的

  • D 盘和 E 盘均包含超过 500 GB 的数据和超过 20000 个目录(大约)。
  • 一个文件夹中有很多库、数据集(自定义)和项目,其中包含很多文件夹(1 个文件夹中的深度最多为 4 个级别中的 50 个文件夹)。

我做了什么

  • 我已经运行了一些测试用例来检查哪个在同一个目录中更快,我甚至检查了时间

结果

  • 我有对于包含 20 个文本文件的文件夹,命令速度更快
  • 但我得到了ls -R对于包含 30 个文件夹的类似文件夹,命令速度更快
  • 但如果层级数更多,树的性能会更好。

解决方案

  • 这两个哪个更快?
  • 有没有更快的命令可以供我使用,可以更快地列出文件?

所以如果有人能回答这个问题那就太好了,因为我有一个更改操作系统的最后期限,所以我想使用最快的命令,以免浪费任何额外的时间。

谢谢

答案1

打印所需时间:

是的,当您运行ls -lR或时tree,会造成延迟,因为需要时间将输出打印到您的终端上。

也就是说,当我运行时time ls -lR /所花费的时间是:

real    0m7.693s
user    0m2.217s
sys 0m3.177s

但是,如果我将它重定向到一个文件,而不是在终端上打印,

time ls -lR / >somefile

那么花费的时间就是:

real    0m2.857s
user    0m1.360s
sys 0m1.487s

同样适用tree(时间上差别不大)

注意:如果您想分配更多资源并以更高的优先级运行,您可以将nice带有选项的命令-n与命令一起使用。

相关内容