6

我有一个目录,其中包含分布在文件夹层次结构中的数百万个文件。该目录存储在一个大型远程 NFS 文件系统上。我想尽快检索这些文件的列表。

有可能比 走得更快find . > list.txt吗?影响速度的因素有哪些?我正在使用 python,但只要速度快,任何解决方案都可以使用。

4

2 回答 2

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 个目录的目录结构中,其中包含多个文件。

于 2018-01-29T00:31:27.660 回答
0

取决于你在输出中想要什么。我建议使用

ls -R | grep ":$" | sed -e 's/:$//' -e 's/^/   /' -e 's/-/|/'

以递归方式获取当前目录中所有文件的完整路径。

于 2013-01-10T16:21:23.663 回答