tree:以树形结构显示目录下的内容
简介tree命令的中文意思为“树”,功能是以树形结构列出指定的目录下的所有内容,包括所有文件、子目录及子目录里的目录和文件;
命令说明
tree命令的中文意思为“树”,功能是以树形结构列出指定的目录下的所有内容,包括所有文件、子目录及子目录里的目录和文件;
但是有些系统没有tree命令,所以需要安装:(如果采用最小化安装的linux系统,可能没有tree命令)
先检查:
[root@server-105 ~]# rpm -qa tree
tree-1.6.0-10.el7.x86_64
否则就进行安装:
[root@server-105 ~]# yum install tree
语法:
tree(选项)(参数)
常用选项说明:
- -a:显示所有文件和目录;
- -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合;
- -C:在文件和目录清单加上色彩,便于区分各种类型;
- -d:先是目录名称而非内容;
- -D:列出文件或目录的更改时间;
- -f:在每个文件或目录之前,显示完整的相对路径名称;
- -F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上”*”,”/“,”@”,”|”号;
- -g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码;
- -i:不以阶梯状列出文件和目录名称;
- -l:<范本样式> 不显示符号范本样式的文件或目录名称;
- -l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录;
- -n:不在文件和目录清单加上色彩;
- -N:直接列出文件和目录名称,包括控制字符;
- -p:列出权限标示;
- -P:<范本样式> 只显示符合范本样式的文件和目录名称;
- -q:用“?”号取代控制字符,列出文件和目录名称;
- -s:列出文件和目录大小;
- -t:用文件和目录的更改时间排序;
- -u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码;
- -x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
- -L level:遍历目录的最大层数,level为大于0的正整数
示例:
1、不带任何参数
[root@server-105 ~]# tree
.
├── anaconda-ks.cfg
└── mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
2、显示所有内容 -a
[root@server-105 ~]# tree -a
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
├── .mysql_history
├── .oracle_jre_usage
│ └── 1c45eaeb254b5676.timestamp
├── .ssh
│ └── authorized_keys
├── .tcshrc
└── .viminfo
3、列出第一层目录下的结构(-L)
[root@server-105 ~]# tree -L 1 /
/
├── apps
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
4、只显示目录(-d)
[root@server-105 usr]# tree -d /etc/
/etc/
├── alternatives
├── audisp
│ └── plugins.d
├── audit
│ └── rules.d
├── avahi
│ ├── etc
│ └── services
├── bash_completion.d
├── binfmt.d
├── chkconfig.d
├── cron.d
.......省略
5、-f选项和-i选项的使用
[root@server-105 usr]# tree -L 1 -f /root/
/root
├── /root/anaconda-ks.cfg
└── /root/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
[root@server-105 usr]# tree -L 1 -fi /root/
/root
/root/anaconda-ks.cfg
/root/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
6、使用tree命令区分目录和文件的方法:
[root@server-105 usr]# tree -L 1 -F /boot/
/boot/
├── config-3.10.0-123.9.3.el7.x86_64
├── grub/
├── grub2/ #目录后面会加/
├── initramfs-0-rescue-0540a029c3f6460fb76f7e013dfc6020.img
├── initramfs-3.10.0-123.9.3.el7.x86_64.img
├── initramfs-3.10.0-123.9.3.el7.x86_64kdump.img
├── initrd-plymouth.img
├── symvers-3.10.0-123.9.3.el7.x86_64.gz
├── System.map-3.10.0-123.9.3.el7.x86_64
├── vmlinuz-0-rescue-0540a029c3f6460fb76f7e013dfc6020*
└── vmlinuz-3.10.0-123.9.3.el7.x86_64*
或者使用:
tree -L 1 -F /boot/|grep /$
tree -L 1 -d /boot/