使用 tree 命令生成目录树(目录结构)

对于码农来说,很多项目说明都需要贴目录结构(目录树),手动写?绝对不可能的~

其实也很简单,主要就是使用tree命令,windows和linux下都可以用

windows下使用tree命令

cmd使用tree命令也是可以的,问题是使用的参数不是很多

默认只显示目录名称

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

参数不区分大小写,/a,/f也是可以的

参数 描述
drive: 指定包含要为其显示目录结构的磁盘的驱动器
path 指定要为其显示目录结构的目录
/F 显示每个目录中文件的名称
/A 指定树将使用文本字符而不是图形字符来显示链接子目录的行
/? 在命令提示符下显示帮助
 D:\project\>tree /?
Graphically displays the folder structure of a drive or pat

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

   /F   Display the names of the files in each folder.
   /A   Use ASCII instead of extended characters.


D:\project\> 
git下使用

如果你的windows系统下有安装git,那么我们可以把tree命令安装到git_bash下,在git_bash下就可以使用tree的很多命令了

git下安装tree

到这个地址(http://gnuwin32.sourceforge.net/packages/tree.htm)下载tree Binaries文件

使用 tree 命令生成目录树(目录结构)

解压后,把bin目录下的tree.exe文件复制到git安装目录下的usr/bin目录即可,如例复制到C:\Program Files\Git\usr\bin

使用 tree 命令生成目录树(目录结构)

这样在git bash上就可以直接使用tree命令了
如:显示二级目录,忽略node_modules目录,不显示文件

$ tree -L 2 -I "node_modules" -d.|-- app|   |-- actions|   |-- components|   |-- constants|   |-- containers|   |-- dist|   |-- reducers|   |-- store|   `-- utils|-- configs|-- dll|-- flow-typed|   `-- npm|-- internals|   |-- flow|   |-- img|   |-- mocks|   `-- scripts|-- release|-- resources|   `-- icons`-- test    |-- actions    |-- components    |-- containers    |-- e2e    `-- reducers27 directories

linux下使用tree命令

linux下默认是没有安装tree命令的,CentOS下使用sudo yum -y install tree

常用命令

显示最多’num’级别深度的文件和目录(其中1表示当前目录):

tree -L num

仅显示目录:

tree -d

同时显示隐藏文件:

tree -a

打印没有缩进行的树,显示完整路径(用于-N不转义空格和特殊字符):

tree -i -f

以人类可读的格式打印旁边每个节点的大小:

tree -s -h

使用通配符(glob)模式过滤树:

tree -P *.txt

忽略与通配符(glob)模式匹配的条目:

tree -I *.txt
语法
tree [-acdfghilnpqrstuvxACDFQNSUX] [-L level [-R]] [-H baseHREF] [-T title] [-o filename] [--nolinks] [-P pattern] [-I pattern] [--inodes] [--device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit #] [--si] [--prune] [--du] [--timefmt format] [--matchdirs] [--fromfile] [--] [directory ...]
描述

树是一个递归目录列表程序产生的文件的深度缩进上市,这是彩色ALA dircolors如果LS_COLORS环境变量设置和输出是终端。如果没有参数,树将列出当前目录中的文件。当给出目录参数时,树依次列出在给定目录中找到的所有文件和/或目录。列出完成列出的所有文件/目录后,树将返回列出的文件和/或目录的总数。

默认情况下,遇到符号链接时,符号链接引用的路径将以以下格式打印在链接名称之后:

name - > real-path

如果给出` -l ‘选项并且符号链接指的是实际目录,则树将遵循符号链接的路径,就像它是真实目录一样。

列表选项
参数 描述
-d 仅列出目录。
-l 如果它们指向目录,则遵循符号链接,就像它们是目录一样。检测到时,将避免将导致递归的符号链接。
-F 打印每个文件的完整路径前缀。
-X 只保留当前的文件系统。Ala 找到 -xdev 。
-L 级别目录树的最大显示深度。
-R 递归地向下遍历每个级别目录的树(请参阅-L选项),并在每个目录中执行树再次添加` -o 00Tree.html’作为新选项。
-P 模式 仅列出与通配符模式匹配的文件。注意:您必须使用-a选项来考虑以点”.”开头的那些文件。匹配。有效的通配符运算符是”*”(任何零个或多个字符),”?” (任何单个字符),[...]'(括号内列出的任何单个字符(可选 - - 破折号)可用于字符范围:ex:[AZ])和[^ …]’(任何单个字符未在括号中列出)和”|”分隔交替模式。
-I 模式 不要列出与通配符模式匹配的文件。
—ignore-case 如果-P或-I选项指定了匹配模式,则这将导致模式匹配,而不考虑每个字母的大小写。
—matchdirs 如果-P选项指定匹配模式,则会导致将模式应用于目录名称(除文件名外)。如果目录名称匹配,则对目录的内容禁用匹配。如果使用—prune选项,则不会修剪与该模式匹配的空文件夹。
—prune 从输出中创建树修剪空目录,与-P或-I一起使用时非常有用。有关此选项的更多信息,请参阅下面的错误和注释。
—noreport 忽略在树列表末尾打印文件和目录报告。
—charset charset设置输出HTML和绘图时使用的字符集。
—filelimit # 不要下载包含多个#条目的目录。
—timefmt 格式 打印(隐含-D)并根据使用strftime(3)语法的格式字符串格式化日期。
-o filename 将输出发送到文件名。
文件选项
参数 描述
-q 将文件名中的不可打印字符作为问号而不是默认值打印。
-N 按原样打印不可打印的字符,而不是转义的八进制数字。
-Q 用双引号引用文件名。
-p 打印每个文件的文件类型和权限(根据ls -l)。
-u 打印文件的用户名或UID#(如果没有可用的用户名)。
-G 打印文件的组名称或GID#(如果没有可用的组名称)。
-s 以字节为单位打印每个文件的大小以及名称。
-H 以更易读的方式打印每个文件的大小,例如附加千字节(K),兆字节(M),千兆字节(G),太字节(T),千兆字节(P)和艾字节(E)的大小字母。
—si 像-h一样,但使用SI单位(1000的幂)。
—du 对于每个目录报告,其大小为其所有文件和子目录(及其文件等)的大小的累积。最终报告中也给出了已用空间的总量(如’du -c ‘命令。)此选项要求树在发出之前读取整个目录树,请参阅下面的错误和注释。意思是-s。
-D 打印上次修改时间的日期,或者如果使用-c,则列出所列文件的最后状态更改时间。
-F 为目录附加一个/',为套接字文件添加一个=’,为可执行文件添加一个*',为一个门(Solaris)添加一个>’和一个`|’ 对于FIFO,按照ls -F
—inodes 打印文件或目录的inode编号
—device 打印文件或目录所属的设备编号
排序选项
参数 描述
-v 按版本对输出进行排序。
-t 按上次修改时间而不是按字母顺序对输出进行排序。
-C 按上次状态更改而不是按字母顺序对输出进行排序。修改-D选项(如果使用)以打印上次状态更改而不是修改时间。
-U 不要排序。按目录顺序列出文件。禁用—dirsfirst。
-r 按相反顺序对输出进行排序。这是一种改变上述种类的元排序。使用-U时禁用此选项。
—dirsfirst 在文件之前列出目录。这是一种改变上述种类的元排序。使用-U时禁用此选项。
—sort [ = ]类型 按类型而不是名称对输出进行排序。可能的值包括:ctime(-c),mtime(-t),大小或版本(-v)。
图形选项
参数 描述
-一世 使树不打印缩进行,与-f选项一起使用时非常有用。当与-J或-x选项一起使用时,也会尽可能多地删除空格。
-一个 打印压痕线时打开ANSI线图形黑客。
-S 打开CP437线图形(使用Linux控制台模式字体时很有用)。此选项现在等效于` —charset = IBM437’,最终可能会折旧。
-n 始终关闭着色,由-C选项覆盖。
-C 如果未设置LS_COLORS或TREE_COLORS环境变量,则使用内置颜色默认值始终打开着色。用于将输出着色到管道。
XML / JSON / HTML选项
参数 描述
-X 打开XML输出。将目录树输出为XML格式的文件。
-J 打开JSON输出。将目录树输出为JSON格式的数组。
-H baseHREF 打开HTML输出,包括HTTP引用。对ftp站点很有用。baseHREF在使用HTML输出时给出基本ftp位置。也就是说,本地目录可能是/ local / ftp / pub',但它必须被引用为ftp://hostname.organization.domain/pub’(baseHREF应该是`ftp://hostname.organization.domain “)”提示:不要在此选项中使用ANSI行,并且不要在目录列表中提供多个目录。如果您希望通过CSS样式表使用颜色,除此选项外还使用-C选项强制颜色输出。
-T 标题 在HTML输出模式下设置标题和H1标题字符串。
—nolinks 关闭HTML输出中的超链接。

参考

https://www.mankier.com/1/tree#–ignore-case

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/tree

http://gnuwin32.sourceforge.net/packages/tree.htm

发表评论

项目已添加到购物车。
0 项 - ¥0.00