用ls遍历大目录的性能问题

发布于 2021-12-02 22:51:42 字数 214 浏览 794 评论 8

一个目录下有几十万的文件,如何用ls(或者其它命令)快速地遍历它们,输出到stdout?

可以接受无序,也就是说,所谓快速遍历,就是不需要进行预先排序就能流式地读到一个文件就输出一个文件,这样内存占用也很小。

已经尝试过的方案是

ls -l -f

加了-f后确实在性能上满足我的想法,但-l的功能没出来。

谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

看透却不说透 2021-12-04 02:04:39

这是ls,linux下的命令,不是js

回忆凄美了谁 2021-12-04 02:04:27

哈哈!一开始看标题我也看成了js。

倚栏听风 2021-12-04 02:04:11

不行的,不知道为什么会在程序里排序

累赘 2021-12-04 02:04:11

js怎么遍历系统的目录?

等风来 2021-12-04 02:00:42

ls -l -f > file.txt

海之角 2021-12-04 01:47:38

要是能解决你这问题早就跳出来了……哈哈哈哈哈哈哈哈

陌上芳菲 2021-12-03 19:13:31

木有办法,只能自己做,附java实现代码

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class ListEmptyFile {

	public static void main(String[] args) throws IOException {
		Path dir = new File(args[0]).toPath();
		for (Path f : Files.newDirectoryStream(dir)) {
			if (f.toFile().length() == 0) {
				System.out.println(f.getFileName());
			}
		}
	}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文