【问题标题】:How to work with millions of files when xargs does not work当 xargs 不起作用时如何处理数百万个文件
【发布时间】:2011-06-10 05:51:26
【问题描述】:

在某些集群中,我需要进入某个目录并列出并选择一些文件。问题是可能甚至有数百万个非常小的文件。如果我这样做了

ls -l

这是非常低效的。但如果我尝试一个应该更好的选择,比如

find . -name "*.mol2" | xargs ls

这需要几分钟,但我没有得到任何答案......

我想知道对于这种情况是否有更好/更快的方法。当然,我可以告诉生成所有这些文件的人一些事情,但这超出了问题的范围。谢谢

【问题讨论】:

  • 这里的问题很可能是通过文件系统索引搜索这么多文件,无论是使用ls还是find。鉴于这种情况,find 是您的最佳选择,但不要打扰 xargs,将您的文件名输出到另一个文件以“缓存”这些命中,以便您稍后可以针对列表运行命令。

标签: filter filesystems xargs


【解决方案1】:

显而易见的是:

find . -name "*.mol2"

但是对于数以百万计的文件,它仍然需要时间 - 至少是第一次。第二次目录有望被缓存。

对于外部范围:创建子目录可能命名为子字符串,因此 foobarbaz123.mpl2 将进入 foo/bar/baz/foobarbaz123.mpl2

【讨论】:

    【解决方案2】:

    ls -al *.mol2 .*mol2怎么样?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2022-11-13
      • 2016-08-22
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多