tree 的安装和使用

tree的功能是创建文件列表,然后将文件列表以树的形式列出来。每隔一段时间再次使用,都会忘记一些命令,还需要再查一下。遂总结一下,一来加深记忆,二来如果需要查找,会更加方便。

一、tree的安装

windows

windows 自带 tree 命令,不用安装,只是功能比较少

linux
Ubuntu:
sudo apt-get install tree
CentOS:
yum install tree -y
mac

使用 homebrew 安装 tree

brew install tree

二、tree的使用

windows

查看 tree 帮助

tree /?

以图形显示驱动器或路径的文件夹结构。

TREE [drive:][path] [/F] [/A]

   /F   显示每个文件夹中文件的名称。
   /A   使用 ASCII 字符,而不使用扩展字符。

知道 tree 在windows 中支持 /A 和 /F 参数,小写也可以
下面简单介绍常用的方法

  1. 查看所有文件夹
tree

文件夹 PATH 列表
卷序列号为 1EF7-2124
D:.
├─aa
│  └─aa
├─bb
└─测试
  1. 显示每个文件夹中文件的名称
tree /f

文件夹 PATH 列表
卷序列号为 1EF7-2124
D:.
│  README.md
│
├─aa
│  │  1.txt
│  │
│  └─aa
├─bb
│      1.txt
│
└─测试
        测试.txt
  1. 将显示的文件结构保存到另一个文件中
    在命令中使用 “>”
    比如
tree > 1.txt
保存的 txt 文件截图

也可以保存成markdown、doc等文件形式。

当然,这些命令可以组合使用。

mac 或 linux

在 mac 和 linux 中 tree 有很多种用法

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

如果像在windows中直接使用 tree ,中文文件夹不会显示中文名,比如

tree
.
└── test
    ├── README.md
    ├── aa
    │   └── 1.txt
    ├── bb
    │   └── 1.txt
    └── �\213�\225
        └── �\213�\225.txt

4 directories, 4 files

如果想要显示中文,可以加上参数-N ,比如

tree -N
.
└── test
    ├── README.md
    ├── aa
    │   └── 1.txt
    ├── bb
    │   └── 1.txt
    └── 测试
        └── 测试.txt

4 directories, 4 files

想要在像 windows 中只显示文件夹可以使用 tree -N -d

tree -N -d
.
└── test
    ├── aa
    ├── bb
    └── 测试

4 directories

加上参数可以更加灵活的使用 tree 命令

【参考文章】
http://www.linuxso.com/command/tree.html

推荐阅读更多精彩内容