我有一个目录,其中包含分布在文件夹层次结构中的数百万个文件。该目录存储在一个大型远程 NFS 文件系统上。我想尽快检索这些文件的列表。
有可能比 走得更快find . > list.txt
吗?影响速度的因素有哪些?我正在使用 python,但只要速度快,任何解决方案都可以使用。
我有一个目录,其中包含分布在文件夹层次结构中的数百万个文件。该目录存储在一个大型远程 NFS 文件系统上。我想尽快检索这些文件的列表。
有可能比 走得更快find . > list.txt
吗?影响速度的因素有哪些?我正在使用 python,但只要速度快,任何解决方案都可以使用。
在 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 个目录的目录结构中,其中包含多个文件。
取决于你在输出中想要什么。我建议使用
ls -R | grep ":$" | sed -e 's/:$//' -e 's/^/ /' -e 's/-/|/'
以递归方式获取当前目录中所有文件的完整路径。