我想列出所有目录中的所有文件并将其保存到文本文件中,以便出于各种原因保留记录。
我拥有的
- 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
与命令一起使用。