macOS 终端中使用 tree 命令

作者: Ju4t

MacOS 没有自带tree 命令,需要用户自己安装;

tree 简介

tree命令可以以树形结构显示文件目录结构,它非常适合于我们给别人介绍我们的文件目录的组成框架,同时该命令使用适当的参数也可以将命令结果输出到文本文件中。

安装

方法一:alias

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

实测:在macOS Monterey 版本12.5.1中,只此一步即可。

方法二:brew install tree

安装

$ brew install tree

命令行参数

-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|“号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用”?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

使用

tree
.
├── 1.k8s-base.yml
├── 2.k8s-keepalived.yml
├── 3.k8s-init-master.yml
├── 4.k8s-join-master.yml
├── 5.k8s-join-works.yml
├── 6.k8s-flannel.yml
├── 9.k8s-reset.yml
├── README.md
├── inventory.ini
├── k8s
│   └── kube-flannel.yaml
└── ssh-copy.sh

1 directory, 11 files

输出到文件

tree > tree.txt