tree:以樹形結構顯示目錄下的內容

tree命令linux

  一、命令詳解docker

      【功能說明】vim

        tree命令的中文意思爲「樹」,功能是以樹形結構列出指定目錄下的全部內容包括全部文件、子目錄及子目錄裏的目錄和文件。bash

      【語法格式】      app

        tree    [option]   [directory]
        tree    [選項]      [目錄]

      【說明】ssh

      1. 注意tree命令以及後面的選項和目錄,每一個元素之間都至少要有一個空格。
      2. tree命令後若不接選項和目錄就會默認顯示當前所在路徑目錄的目錄結構。

  二、參數說明spa

參數選項 解釋說明(帶 Δ 的爲重點)
-a 顯示全部文件,包括隱藏文件(以  「.」 點開頭的文件 )
-d 只顯示目錄   Δ
-f 只顯示每一個文件的全路徑
-i 不顯示樹枝,常與-f參數配合使用
-L level 遍歷目錄的最大層數,level 爲大於0的正整數   Δ
-F 在執行文件、目錄、Socket符號連接、管道名稱等不一樣類型文件的結尾,各自加上「*」、 "/"、"="、"@"、"|"號、相似ls命令的-F選項

  三、使用範例
    在講解案例以前,先作準備工做code

    第一步,安裝tree命令server

    首先檢查系統是否安裝了tree命令,若是不採用的是最小安裝linux系統的方式,哪麼tree命令有可能沒有安裝。此時可用yum命令安裝tree命令:blog

[root@1-230 ~]# rpm -qa tree            #查詢tree命令是否安裝
tree-1.6.0-10.el7.x86_64                      #若是沒有顯示就執行下面的命令
[root@1-230 ~]# yum -y install tree     #安裝tree命令的yum命令

     第二步,調用系統字符集,防止樹形結構顯示亂碼。

     在使用樹形結構時,極可能會由於字符集致使出現亂碼問題,好比致使樹形的樹枝部分都是問號,例如:

[root@1-230 ~]# tree /usr/local/
/usr/local/
?..?€ bin
?..?€ etc
?..?€ games
?..?€ include
?..?€ lib
?..?€ lib64
?..?€ libexec
?..?€ sbin
?..?€ share
?...?..?€ applications
?...?..?€ info
?...?..?€ man

      下面的命令爲臨時解決樹結構亂碼的方法

[root@1-230 ~]# LANG=en_US.UTF-8

  四、案例範例

    一、不帶任何參數執行tree命令

[root@1-230 etc]# cd ~                 #顯示當前目錄的結果
[root@1-230 ~]# tree
.       # " . " 以當前目錄爲起點
└── anaconda-ks.cfg

0 directories, 1 file

     二、以樹形結構顯示目錄下的全部內容(-a的功能)

[root@1-230 ~]# tree -a      #帶 -a 參數顯示全部文件(包括隱藏文件)
.
├── anaconda-ks.cfg
├── .bash_history             #在linux系統中,以"  .  "點號開頭的文件爲隱藏文件,默認不顯示
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── .pki
│   └── nssdb
├── .ssh
│   ├── id_rsa
│   ├── id_rsa.pub
│   └── known_hosts
├── .tcshrc
└── .viminfo

3 directories, 11 files

    三、只列出目錄下第一層目錄的結構(-L 功能)

[root@1-230 ~]# tree -L 1 /          #-L參數後接數字,表示查看目錄的層數,不帶-L選項默認顯示全部層數
/
├── bin -> usr/bin
├── boot
├── dev
├── docker
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── scripts
├── server
├── srv
├── sys
├── tmp
├── usr
└── var

22 directories, 0 files 

    四、只顯示全部的目錄(但不顯示文件)。

[root@1-230 ~]# tree -d /usr/local/            #-d 參數表示只顯示目錄
/usr/local/
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── sbin
├── share
│   ├── applications
│   ├── info
│   └── man
│   ├── man1
│   ├── man1x
│   ├── man2
│   ├── man2x
│   ├── man3
│   ├── man3x
│   ├── man4
│   ├── man4x
│   ├── man5
│   ├── man5x
│   ├── man6
│   ├── man6x
│   ├── man7
│   ├── man7x
│   ├── man8
│   ├── man8x
│   ├── man9
│   ├── man9x
│   └── mann
└── src

32 directories

 

[root@1-230 ~]# tree -dL 1 /usr/local/          #-d參數只顯示目錄,-L參數顯示層數,這裏是1層。
/usr/local/
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── sbin
├── share
└── src

10 directories

    五、-f選項和-i選項的使用

           使用-f選項可顯示完整的路徑名稱,使用-i選項則不顯示樹枝部分,示例代碼以下:

[root@1-230 ~]# tree -L 1 -f /usr/local/             # -f  顯示內容的完整路徑
/usr/local
├── /usr/local/bin
├── /usr/local/etc
├── /usr/local/games
├── /usr/local/include
├── /usr/local/lib
├── /usr/local/lib64
├── /usr/local/libexec
├── /usr/local/sbin
├── /usr/local/share
└── /usr/local/src

10 directories, 0 files

 

[root@1-230 ~]# tree -L 1 -fi /usr/local/         # -i 不顯示   「樹枝」  ,當須要獲取全部文件的完整路徑時,這個命令很好用。
/usr/local
/usr/local/bin
/usr/local/etc
/usr/local/games
/usr/local/include
/usr/local/lib
/usr/local/lib64
/usr/local/libexec
/usr/local/sbin
/usr/local/share
/usr/local/src

10 directories, 0 files

    六、使用tree命令區分目錄和文件的方法(經常使用)

[root@1-230 ~]# tree -L 1 -F /boot                      #使用-F參數會在目錄後面添加   「/ 」,方便區分目錄
/boot
├── config-3.10.0-514.el7.x86_64
├── grub/
├── grub2/
├── initramfs-0-rescue-acfc6ac3b92c4b9d94570fde26f40941.img
├── initramfs-3.10.0-514.el7.x86_64.img
├── initramfs-3.10.0-514.el7.x86_64kdump.img
├── initrd-plymouth.img
├── symvers-3.10.0-514.el7.x86_64.gz
├── System.map-3.10.0-514.el7.x86_64
├── vmlinuz-0-rescue-acfc6ac3b92c4b9d94570fde26f40941*
└── vmlinuz-3.10.0-514.el7.x86_64*

2 directories, 9 files

 

[root@1-230 ~]# tree -L 1 -F /boot/ |grep /$            #過濾以斜線結尾的全部內容,若是你們看不懂這方法,那麼建議等學完grep命令在回頭來看
/boot/
├── grub/
├── grub2/

 

[root@1-230 ~]# tree -L 1 -d /boot/                 #使用-d參數只顯示目錄樹,這樣能夠輕鬆過濾內容中的目錄。
/boot/
├── grub
└── grub2

2 directories

相關文章
相關標籤/搜索