我在一个目录中有近 7,000 个文件,这使得加载该特定目录变得乏味且耗时。有没有什么方法可以更快地列出该目录中的文件并对其执行操作,而不是将文件分发到多个子文件夹中(这使得它变得更加困难)?
我用的是ext4。但也从 efs 文件系统收到了相同的信息。
答案1
除了简单地列出文件之外,大目录可能会因多种原因而出现问题。一方面,打开该目录中的文件所需的时间将会增加,因为必须读取该目录直到找到该文件。在包括 ext* 在内的许多文件系统上,目录条目未针对检索效率进行组织或优化。
回答您的具体问题,我认为您会发现由于涉及排序,使用 ls 需要一段时间。解决方案是运行 ls unsorted (如果您的 ls 发行版中有这样的选项)。具体来说,我可能会对文件进行未排序并对其进行排序。然后我就可以引用该文件,而不必再执行一次 ls 操作。
另一种类似的方法是使用 find 命令并将目录内容列出到文件中(该文件将未排序),然后从那里开始。
因此,我的建议是基于可访问性、效率和轻松查找文件,使用多个子目录。