我有一个目录,其中包含分布在文件夹层次结构中的数百万个文件。该目录存储在大型远程NFS文件系统中。我想尽快检索这些文件的列表。
是否有可能比find . > list.txt
更快?哪些因素影响速度?我正在使用python,但任何解决方案都会在快速的情况下运行。
答案 0 :(得分:3)
在linux上,这对我来说是最快的。像这样使用(bash)globbing和printf:
printf "%s\n" directory/**/file
printf "%s\x00" directory/**/filename-with-special-characters | xargs -0 command
似乎比
快很多find directory -name file
或
ls -1R directory | grep file
甚至,令人惊讶的是,
ls directory/**/file
这是一个本地文件系统:x86_64系统,SSD上的ext4文件系统,目录结构超过600,000个目录,其中包含多个文件。
答案 1 :(得分:0)
根据您在输出中的要求。我建议使用
ls -R | grep ":$" | sed -e 's/:$//' -e 's/^/ /' -e 's/-/|/'
获取当前目录中递归所有文件的完整路径。