Shell学习-16-tree命令安装及使用

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 Shell学习-16-tree命令安装及使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

3.5 tree命令安装及使用

  • 查看运行的Linux发行版本 (#cat /etc/issue),查看运行的Linux内核信息 (#cat /proc/version )
3.5.1 tree命令简介
  • tree命令是一种递归目录列表显示命令,使用该命令可以以树状图的形式列出一个目录下所有文件内容。tree适用于以下系统:Linux,FreeBSD,OS X操作系统,Solaris,HP UX,Cygwin,HP NonStop OS / 2。

  • tree命令安装:

    • 方法一:installyum安装。Ubuntu下使用apt get-intall tree;Fedora和RedHat以及CentOS下使用#yum install tree
    • 手动安装:下载源码安装包:http://mama.indstate.edu/users/ice/tree/,选择最新版:
      在这里插入图片描述
#解压安装包命令:
[root@VM-0-3-centos ~]# cd /usr/local/src
[root@VM-0-3-centos src]# tar -zxvf tree-2.1.0.tgz
#进入解压目录,使用`ls`查看文件内容:
[root@VM-0-3-centos src]# cd tree-2.1.0
[root@VM-0-3-centos tree-2.1.0]# ll
total 208
-rw-r--r-- 1 4437 users 21406 Dec 27 00:11 CHANGES
-rw-r--r-- 1 4437 users 16158 Dec 27 03:13 color.c
drwxr-xr-x 2 root root   4096 Dec 29 14:54 doc
-rw-r--r-- 1 4437 users  6364 Dec 25 01:15 file.c
-rw-r--r-- 1 4437 users  3993 Dec 12 00:04 filter.c
-rw-r--r-- 1 4437 users  3118 Jun 16  2022 hash.c
-rw-r--r-- 1 4437 users  6669 Dec 12 01:13 html.c
-rw-r--r-- 1 4437 users  4669 Dec 12 00:02 info.c
-rw-r--r-- 1 4437 users   597 Dec  2 12:40 INSTALL
-rw-r--r-- 1 4437 users  5927 Dec  5 06:30 json.c
-rw-r--r-- 1 4437 users 18009 Aug 13  2004 LICENSE
-rw-r--r-- 1 4437 users  7251 Dec 25 02:06 list.c
-rw-r--r-- 1 4437 users  2936 Dec 27 03:15 Makefile
-rw-r--r-- 1 4437 users  9028 Dec 27 03:29 README
-rw-r--r-- 1 4437 users  5346 Apr 14  2021 strverscmp.c
-rw-r--r-- 1 4437 users   853 Dec 21  2021 TODO
-rw-r--r-- 1 4437 users 39412 Dec 25 09:01 tree.c
-rw-r--r-- 1 4437 users  8677 Dec 12 01:12 tree.h
-rw-r--r-- 1 4437 users  3166 Jun 16  2022 unix.c
-rw-r--r-- 1 4437 users  5039 Dec  5 06:36 xml.c
#安装该指令文件,命令:
[root@VM-0-3-centos tree-2.1.0]# sudo make install
#输入#tree --version测试该指令:
[root@VM-0-3-centos tree-2.1.0]# tree --version
tree v2.1.0 © 1996 - 2022 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro
3.5.2 tree使用
  • tree语法如下:
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
  • 选项说明:
-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
--inodes      # Print inode number of each file.
--device      # Print device ID number to which each file belongs.
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I pattern #Do not list files that match the given pattern.
-L level 限制目录显示层级。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-Q  # Quote filenames with double quotes.
-R # Rerun tree when max dir level reached.
-s 列出文件或目录大小。
-S    # Print with CP437 (console) graphics indentation lines.
--si   # Like -h, but use in SI units (powers of 1000).
-h   # Print the size in a more human readable way.
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
--ignore-case # Ignore case when pattern matching.
--matchdirs   # Include directory names in -P pattern matching.
--noreport    # Turn off file/directory count at end of tree listing.
--charset X   # Use charset X for terminal/HTML and indentation line output.
--filelimit # # Do not descend dirs with more than # files in them.
--timefmt <f> # Print and format time according to the format <f>.
-o filename   # Output to file instead of stdout.
-v            # Sort files alphanumerically by version.
-c            # Sort files by last status change time.
-U            # Leave files unsorted.
-r            # Reverse the order of the sort.
--dirsfirst   # List directories before files (-U disables).
--sort X      # Select sort: name,version,size,mtime,ctime.
------- XML / HTML / JSON选项 -------
-X            # Prints out an XML representation of the tree.
-J            # Prints out an JSON representation of the tree.
-H baseHREF   # Prints out HTML format with baseHREF as top directory.
-T string     # Replace the default HTML title and H1 header with string.
--nolinks     # Turn off hyperlinks in HTML output.
---- 杂项选项 ----
--version     # 输入版本信息。
--help        # 打印使用帮助信息。
--            # Options processing terminator.
  • 参数说明:
    目录:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。

  • 测试:在需要查看的文件夹下输入#tree指令查看当前目录结构:

[root@VM-0-3-centos usr]# cd /usr/local/redis
[root@VM-0-3-centos redis]# pwd
/usr/local/redis
[root@VM-0-3-centos redis]# tree
.
├── bin
│   ├── redis-benchmark
│   ├── redisbloom.so
│   ├── redis-check-aof -> redis-server
│   ├── redis-check-rdb -> redis-server
│   ├── redis-cli
│   ├── redis-sentinel -> redis-server
│   └── redis-server
├── conf
│   ├── appendonlydir
│   │   ├── appendonly.aof.1.base.rdb
│   │   ├── appendonly.aof.1.incr.aof
│   │   └── appendonly.aof.manifest
│   ├── redis_6500.conf
│   └── redis.conf
└── dump.rdb

4 directories, 13 files
  • 忽略文件夹
tree -I node_modules # 忽略当前目录文件夹node_modules
tree -P node_modules # 列出当前目录文件夹node_modules的目录结构
tree -P node_modules -L 2 # 显示目录node_modules两层的目录树结构
tree -L 2 > /home/www/tree.txt # 当前目录结果存到 tree.txt 文件中
  • 忽略多个文件夹,注意用''将忽略的文件和目录引起来
[root@VM-0-3-centos redis]# tree -I 'conf|dump.rdb' -L 2
.
└── bin
    ├── redis-benchmark
    ├── redisbloom.so
    ├── redis-check-aof -> redis-server
    ├── redis-check-rdb -> redis-server
    ├── redis-cli
    ├── redis-sentinel -> redis-server
    └── redis-server

2 directories, 7 files

  • 非树状结构列出目录/bin/下的所有文件
[root@VM-0-3-centos redis]# tree -if bin
bin
bin/redis-benchmark
bin/redisbloom.so
bin/redis-check-aof -> redis-server
bin/redis-check-rdb -> redis-server
bin/redis-cli
bin/redis-sentinel -> redis-server
bin/redis-server

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123677.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!