跳转至

Window平台下tree 命令使用

WIndow 平台要想打印目录树,可以用cmd工具或者power shell 的tree命令实现;又或者用git bash 工具,使用tree命令实现。

使用cmd的tree命令

tree 命令格式和参数:

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

  • /F 显示每个文件夹中文件的名称。(带扩展名)
  • /A 使用 ASCII 字符,而不使用扩展字符。(如果要显示中文,例如 tree /f /A >tree.txt)

比如:

tree /f >tree.txt
导出当前目录的文件夹/文件的目录树到tree.txt文件中。

Tip

  1. 要是目录很深文件很多生成的树大了去!
  2. 没找到其它参数可以只打印一级或者二级目录类似的参数!

在git bash 中用tree命令

  1. 打开进入 Tree for Windows 页面,选择下载 Binaries zip 文件。
  2. 解压压缩包,找到压缩包内的 bin 目录,将 bin 目录下的 tree.exe 复制
  3. 找到 C:\Program Files\Git\usr\bin 目录,将 tree.exe 粘贴到该目录下,安装即完成

tree命令行参数:

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

实例: 显示4级目录并保存到txt文件中,其中-N为了显示中文。

$ tree -N -L 4 >tree.txt
.
|-- 3rdPartySoftwarePorting
|   `-- TinyUSB
|       |-- Demos
|       |   `-- TinyUSB_Device_CDC_MSC
|       `-- tinyusb-0.16.0
|           |-- CODE_OF_CONDUCT.rst
|           |-- CONTRIBUTORS.rst
|           |-- LICENSE
|           |-- README.rst
|           |-- docs
|           |-- examples
|           |-- hw
|           |-- lib
|           |-- library.json
|           |-- pkg.yml
|           |-- repository.yml
|           |-- src
|           |-- test
|           |-- tools
|           `-- version.yml
|-- Device
|   |-- CMSIS
|   |   `-- Core
|   |       `-- Include
|   `-- MM32F5270
|       |-- HAL_Lib
|       |   |-- Inc
|       |   `-- Src
|       |-- Include
|       |   |-- mm32_device.h
|       |   |-- mm32f5270.h
|       |   |-- reg_adc.h
|       |   |-- reg_bkp.h
|       |   |-- reg_comp.h
|       |   |-- reg_cordic.h
|       |   |-- reg_crcpoly.h
|       |   |-- reg_crs.h
|       |   |-- reg_dac.h
|       |   |-- reg_dbg.h
|       |   |-- reg_dma.h
|       |   |-- reg_enet.h
|       |   |-- reg_exti.h
|       |   |-- reg_flash.h
|       |   |-- reg_flexcan.h
|       |   |-- reg_fsmc.h
|       |   |-- reg_gpio.h
|       |   |-- reg_i2c.h
|       |   |-- reg_iwdg.h
|       |   |-- reg_lptim.h
|       |   |-- reg_lpuart.h
|       |   |-- reg_mds.h
|       |   |-- reg_pwr.h
|       |   |-- reg_qspi.h
|       |   |-- reg_rcc.h
|       |   |-- reg_rtc.h
|       |   |-- reg_spi.h
|       |   |-- reg_syscfg.h
|       |   |-- reg_tim.h
|       |   |-- reg_uart.h
|       |   |-- reg_usb_fs.h
|       |   `-- reg_wwdg.h
|       `-- Source
|           |-- IAR_StartAsm
|           |-- KEIL_StartAsm
|           |-- MM32F5270.sct
|           `-- system_mm32f5270.c
`-- tree.txt

24 directories, 43 files