如何在 Markdown 中生成目录树?

8,105 阅读1分钟

在一个项目的 README 中,我们往往会想把项目的目录结构进行一下介绍或者注释,这样方便其他人接手项目时快速熟悉,同时也方便自己回忆起项目结构。那么效果比较好的呈现方式自然就是目录树,如何快速生成项目的目录树呢?(此篇仅针对 MacOS

tree 命令

MacOS 并不自带 tree 命令,因此我们需要手动安装一下。

安装
$ brew install tree
使用
$ tree

灵活用法

仅仅是上面这样使用可能没法满足一些情况下的需求。

  • 如何输出指定层级的目录树?

    直接使用 tree 命令,它会把所有层级都输出,但如果我们只要输出 2 个层级就可以了,那么可以这样使用:

    // -L level 表示只会遍历到指定层级
    $ tree -L 2
    
  • 如何忽略某些文件夹输出目录树?

    前端项目基本都会有这个问题,就是会把 node_modules 也输出成目录树,一下子目录树会无比巨大,而且一般我们也并不需要输出这个文件夹下的内容,那么可以这样使用:

    // -I pattern 表示不会将匹配到的文件/文件夹输出,即类似 ignore 的功能
    $ tree -I node_modules
    

当然可能还有其他场景,这时候你可以查看这个命令的说明:

tree --help 来看看还有什么参数是可以满足需求的,可用的参数还是非常多的。