千家信息网

linux中快速列出文件列表的多种方法总结

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,前言最近在工作中碰到一个很棘手的问题,需要读取出ubuntu系统中某个目录下所有文件,由于服务器中存储的文件实在太多,导致此过程效率十分低下,动辄需要等待一个小时之久,还只是一个目录。于是如何快速获取
千家信息网最后更新 2026年11月03日linux中快速列出文件列表的多种方法总结

前言

最近在工作中碰到一个很棘手的问题,需要读取出ubuntu系统中某个目录下所有文件,由于服务器中存储的文件实在太多,导致此过程效率十分低下,动辄需要等待一个小时之久,还只是一个目录。于是如何快速获取文件列表便是这两天的头等大事,折腾半天找到一个较为快速的方法,记录如下,话不多说了,来一起看看详细的介绍吧。

多种实现方法

尝试了多种方法,有编程的和非编程的。

1、walk

python的walk库能够递归的读取目录下所有文件,这个是最常规的方法,然而效率有些缓慢。实现很简单,不赘述。

2、os.scandir

python中的os.scandir方法官方解释为快速读取目录,测试了一下速度相对walk而言是由提高,但是还是达不到要求,也需要自己写递归,代码如下:

def scan_path(file_path, level = 3): files = [] if level >= 0:  path = os.scandir(file_path)  for p in path:   if p.is_dir():    files.extend(scan_path(p.path, level - 1))   else:    files.append(p.path) return files

当这两种方法都行不通的时候我就开始考虑才用非编程方法了。理论上来说python的执行效率已经蛮高了,虽然可能达不到c或者c++的速度,但是相比java、C#来说已经够快了,所以就没有再考虑编程的方式,而是转向linux系统原生的方式。

3、ls

最先想到的就是ls命令,使用如下命令

ls -l -R(或-lR) src > list.txt

此命令能够列出src目录下的所有文件,但是效率还是不够高,而且结果包含了目录信息以及文件信息,不太整齐,需要后续处理。

4、tree

tree命令本身用于列出文件系统的结构树,在设置一些参数的情况下也能够实现列出所有目录和文件的功能。

tree -afi -L 3 -o 2.txt --noreport src

-a列出所有文件,-f列出完整路径(结果为绝对路径或者相对路径与find用法一致),-i不画tree的结构线, -L列出多少层目录,-o输出到文件,--noreport不要最后的summary。

5、find

find命令本身是查找文件的命令,但是如果使用得当,能够快速列出目录下文件,命令如下:

find src > 1.txt

此命令速度足够快,基本能够满足需要了。find的结果相对当前src的路径,也就是说其每条结果的开头均是src,如果src为绝对路径,则结果为绝对路径,如果src为相对路径,则结果以此相对路径为开头。

6、locate

又Google了一下,发现locate与find的功能相似,locate也能够查找文件,于是猜想locate也能够实现此功能,试之,果然可以,写法都是一样的。

locate src > 1.txt

不同点在于无论src为相对路径还是绝对路径,其结果均为绝对路径。

使用time命令进行命令执行时间测试,发现find和locate时间基本相同,有时locate会稍微快一些,而tree命令则有些慢。

结论

以上均可取到文件夹下所有文件,使用walk和scandir最为方便与程序集成,但是速度稍微有些慢,find和locate命令速度较快,tree命令功能强大,但速度相对find和locate有些慢,此三者若要与python集成,则需要在程序中使用os.popen等管道机制来执行拼接的bash命令。所以以上命令各有所长,按照自己的需求取舍。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

文件 命令 路径 目录 方法 结果 速度 功能 效率 编程 系统 还是 多种 信息 内容 就是 开头 方式 时间 程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 互联网科技活动banner 互联网金融监管科技数据 美国互联网科技巨头监管 奇士达互联网科技 互联网科技上市公司 米客互联网科技 济南和联互联网科技有限公司 江苏南京365互联网科技 互联网金融中的现代科技 成都互联网科技公司工作好不好 互联网新科技动漫ppt素材 山东星卡互联网科技有限公司官网 互联网公司高科技产品 广州百诚互联网科技有限公司官网 上海乐五互联网科技有限公司 互联网金融金融科技 互联网企业和网络科技有限公司 银川新华互联网科技学校招聘 株洲百竞科技的互联网营销顾问 A股互联网金融科技公司 美国互联网黑科技 伴你行互联网科技有限公司 互联网科技宣传片 须眉科技是互联网公司吗 互联网为啥属于高科技 互联网公司黑科技创始人 扫呗互联网科技有限公司 昆明中奇联合互联网科技 优雇互联网科技有限公司
0