前言
大家最常用的命令行工具,应该是 ls、tree、find、fd、exa、bat……
我也常在用,但各有缺陷,功能不全。
我想要一个命令行工具,可以 打印文件和目录结构,以及其文件内容,并且有可选项,和忽略文件夹,搜遍全网,都没有满足我要求的。按我的习惯,全网没有,那我就自己写一个!!!

命令行小工具:ls2
简单使用 先直接上效果图:

ls2用法

可选项:只打印文件目录结构,不打印内容

可选项:只打印目录结构,不打印文件名、内容

可选项:忽略特定路径下的目录


可选项:忽略所有的某目录

可选项:组合示例


建议
将 ls2 加入环境变量
然后可以任意路径下使用
下载
ls2下载地址(含 Windows、Linux、MacOS 三个版本)
https://download.youkuaiyun.com/download/maoyeahcom/91092969
==============================================================
ls2 程序与现有 Linux/Windows 命令工具对比
ls2 程序功能是:
- 打印目录树结构(可选:仅显示目录,目录+文件,目录+文件+内容)
- 支持忽略某些目录(支持通配,比如
*/.git) - 可递归显示文件内容
在 Linux/Windows 上类似的命令工具
1. tree(Linux/Windows均有)
- 功能:打印目录树结构,可按层级显示目录和文件。
- 是否支持忽略目录:支持(
-I选项,简单通配符)。 - 是否显示内容:不支持。
- 是否支持仅目录:支持(
-d选项)。 - 通配符灵活性:不及
ls2程序灵活(只支持简单*,不支持递归通配如*/.git)。
示例:
tree -I '.git|node_modules' # 忽略.git和node_modules目录(只支持当前层级)
tree -d # 只显示目录
2. find(Linux/Windows均有)
- 功能:递归列出文件和目录,可灵活过滤。
- 是否支持忽略目录:支持,需配合
-prune使用。 - 是否显示内容:不支持直接显示内容。
- 是否支持仅目录:支持(
-type d)。 - 通配符灵活性:可组合实现,但写法繁琐。
示例:
find . -type d # 只显示目录
find . -type f # 只显示文件
find . -name '.git' -prune -o -print # 忽略所有.git目录
3. ls(Linux/Windows的PowerShell有类似Get-ChildItem)
- 功能:列出目录内容。
- 是否递归:
ls -R。 - 是否忽略目录/显示内容:不支持灵活过滤和内容显示。
4. fd, exa, bat等现代工具(Linux)
fd:快速查找文件/目录,支持忽略模式(.gitignore语法),但不显示内容。exa:美化版ls,支持树状显示(exa --tree),部分过滤。bat:类似cat,带高亮,不能递归显示所有内容。
ls2独特之处
- 支持递归显示所有文件内容
- 忽略目录支持相对路径和递归通配(
*/.git),比tree -I更灵活 - 结合目录树与内容一体,市面主流命令行工具基本没有完全一样的
总结
- 没有与
ls2完全等价的现成工具。 tree+cat+find组合可部分实现,但不如ls2方便和灵活。- 如果你只想看目录树,用
tree。 - 如果你想灵活过滤目录,结合
find和tree。 - 如果你要递归看内容,只有写脚本或用ls2。
结论:
ls2程序是对现有命令行工具的有力补充,独特之处是灵活的目录过滤和递归内容打印,常见系统工具(Linux/Windows)没有完全同样功能的现成命令。
下载
ls2下载地址(含 Windows、Linux、MacOS 三个版本)
https://download.youkuaiyun.com/download/maoyeahcom/91092969
2795

被折叠的 条评论
为什么被折叠?



