Linux 中的树命令示例
在 UNIX/LINUX 系统以及 MS-DOS 和 Microsoft Windows 中,树是一种递归目录列表程序,可生成文件的深度缩进列表。没有参数,树列出当前目录中的文件。当给出目录参数时,树依次列出在给定目录中找到的所有文件或目录。完成列出找到的所有文件和目录后,树返回列出的文件和目录的总数。可以选择更改输出中使用的字符以及使用颜色输出。
句法 :
$ tree [-adfgilnopqrstuxACDFNS] [-L level [-R]] [-H baseHREF] [-T title] [-o filename]
[–nolinks] [-P pattern] [-I pattern] [–inodes] [–device] [–noreport] [–dirsfirst]
[–version] [–help] [directory …]
选项 :
–help :输出详细的用法列表。
–version :输出树的版本。
-a :打印所有文件。默认情况下,树不打印隐藏文件(那些以点“.”开头的文件)。在任何情况下,树都不会打印文件系统构造“.” (当前目录)和“..”(上一目录)。
-d :仅列出目录。
-f :打印每个文件的完整路径前缀。
-i : Tree 不会打印缩进线。与 -f 选项结合使用时很有用。
-l :跟随符号链接到目录,就好像它们是目录一样。避免了会导致递归循环的链接。
-x :只停留在当前文件系统上,就像 find -xdev 一样。
-P 模式:仅列出与通配符模式匹配的文件。
注意:您必须使用 -a 选项来考虑那些以点“.”开头的文件。为匹配。有效的通配符运算符'*“(任何零个或多个字符),`?” (任何单个字符)、`[…]'(括号内列出的任何单个字符(可选 – 可以使用字符范围的(破折号):例如:[AZ])和`[^…]'(任何单个字符不是括号中列出)和“|”分隔替代模式。
-I 模式:不列出那些与通配符模式匹配的文件。
–prune :使树从输出中修剪空目录,与 -P 或 -I 结合使用时很有用。
–filelimit # :不要下降包含超过 # 个条目的目录。
–timefmt 格式:根据使用 strftime 语法的格式字符串打印(暗示 -D)并格式化日期。
–noreport :省略在树列表末尾打印文件和目录报告。
-p :打印每个文件的保护(按照 ls -l)。
-s :打印每个文件的大小和名称。
-u :如果没有可用的用户名,则打印文件的用户名或 UID #。
-g :如果没有可用的组名,则打印文件的组名或 GID #。
-D :打印列出的文件的最后修改时间的日期。
–inodes :打印文件或目录的 inode 编号
–device :打印文件或目录所属的设备号
-F :为目录附加一个 `/',为套接字文件附加一个 `=',为可执行文件附加一个 `*' 和一个 `|'对于 FIFO,按照 ls -F
-q :将文件名中的不可打印字符打印为问号,而不是默认的胡萝卜符号。
-N :按原样打印不可打印的字符,而不是默认的胡萝卜符号。
-r :按逆字母顺序对输出进行排序。
-t :按上次修改时间而不是按字母顺序对输出进行排序。
–dirsfirst :在文件之前列出目录。
-n :始终关闭着色,由 -C 选项覆盖。
-C :始终打开着色,如果 LS_COLORS 环境变量未设置,则使用内置颜色默认值。用于将输出着色到管道。
-A :在打印缩进线时打开 ANSI 线图 hack。
-S :打开 ASCII 线图形(在使用 linux 控制台模式字体时很有用)。这个选项现在等价于 `--charset=IBM437' 并且最终会被贬值。
-L level :目录树的最大显示深度。
-R :递归地向下遍历树的每个级别目录(请参阅 -L 选项),并在每个目录中再次执行树,添加 `-o 00Tree.html' 作为新选项。
-H baseHREF :打开 HTML 输出,包括 HTTP 引用。对 ftp 站点很有用。 baseHREF 在使用 HTML 输出时给出基本 ftp 位置。即本地目录可以是`/local/ftp/pub',但必须引用为`ftp://host-name.organization.domain/pub'(baseHREF应该是`ftp://hostname.organization 。领域')。提示:不要在此选项中使用 ANSI 行,并且不要在目录列表中提供多个目录。如果您想通过 CSS 样式表使用颜色,除了此选项外,还可以使用 -C 选项来强制颜色输出。
-T title :在 HTML 输出模式下设置标题和 H1 标题字符串。
–charset charset :设置在输出 HTML 和绘制线条时使用的字符集。
–nolinks :关闭 HTML 输出中的超链接。
-o 文件名:将输出发送到文件名。
例子 :
1. 如何在 Unix/Linux 中安装树。
默认情况下不安装 tree 命令。键入以下命令以使用 yum 命令在 RHEL/CentOS/Fedora Linux 上安装相同的命令:
# yum install tree
如果您使用的是 Debian / Mint / Ubuntu Linux,请键入以下 apt-get 命令来安装 tree 命令:
$ sudo apt install tree
如果您使用的是 Apple OS X,请键入:
brew install tree
2. 显示目录的树状层次结构
$ tree -a ./GFG
输出 :
3. 列出输入模式的文件
$ tree -P sample* .
输出 :
4. 列出那些文件/目录数大于“N”的目录
$ tree --filelimit 3 ./GFG
5. 列出文件及其权限。
$ tree -p ./GFG
输出 :
6. 打印文件或目录所属的设备号。
$ tree --device ./GFG
输出 :
7. 按上次修改时间而不是按字母顺序打印输出。
$ tree -t ./GFG
输出 :