我正在运行一个脚本来查看目录及其子目录中的所有文件.
该脚本已经运行了一天,我想估计它将继续运行多长时间.我知道它到目前为止处理了多少文件(73,000,000),但我不知道文件的总数.
计算文件的最快方法是什么?
我试着右键单击目录并选择"属性",然后它慢慢计数.我尝试将ls重定向到一个文件中,它只是搅拌和搅拌......
我应该用c写一个程序吗?
最简单的方法:
find <dir> -type f | wc -l
Run Code Online (Sandbox Code Playgroud)
或许快一点:
find <dir> -type f -printf '\n' | wc -l
Run Code Online (Sandbox Code Playgroud)
我做了一个快速的研究.使用包含100,000个文件的目录,我比较了以下命令:
ls -R <dir>
ls -lR <dir>
find <dir> -type f
Run Code Online (Sandbox Code Playgroud)
我跑了两次,一次重定向到一个文件(>file
),一次管道到wc(|wc -l
).以下是以秒为单位的运行时间:
>file |wc
ls -R 14 14
find 89 56
ls -lR 91 82
Run Code Online (Sandbox Code Playgroud)
>file
和之间的差异|wc -l
小于ls
和之间的差异find
.
它似乎ls -R
至少快4倍find
.
归档时间: |
|
查看次数: |
8260 次 |
最近记录: |