tree命令的中文意思爲「樹」,功能是以樹形結構列出指定目錄下的全部內容,包括全部文件、子目錄及子目錄裏的目錄和文件。html
tree [option] [directory]
tree [選項] [目錄]正則表達式
說明:bash
1)注意tree命令以及後面的選項和目錄,每一個元素之間都至少要有一個空格session
2)tree命令後若不接選項和目錄就會默認顯示當前所在路徑目錄的目錄結構運維
tree命令的參數選項及說明,圖片來源於 【跟老男孩學Linux運維:核心系統命令】spa
在舉例前,咱們是否是應該安裝好tree命令呢?(若是你也採用最小化安裝Linux系統的方式,那麼tree命令可能沒有安裝,此時咱們應該用yum命令來安裝tree命令)code
[root@king ~]# rpm -qa tree #<==查詢tree命令是否安裝。 tree-1.5.3-2.el6.x86_64 #<==若是沒有顯示就執行下面的命令 [root@king ~]# yum -y install tree #<==安裝tree命令的yum命令
臨時解決樹結構亂碼的方法 htm
[root@king ~]# LANG=en_US.UTF-8
[root@king etc]# cd ~ [root@king ~]# tree #<==顯示當前目錄的結構。 . #<==「.」以當前目錄爲起點。 ├── anaconda-ks.cfg ├── install.log └── install.log.syslog 0 directories, 3 files
[root@king ~]# tree -a #<==帶-a參數顯示全部文件(包括隱藏文件)。 . ├── anaconda-ks.cfg ├── .bash_history #<==在Linux系統中,以「.」點號開頭的文件爲隱藏文件,默認不顯示。 ├── .bash_logout ├── .bash_profile ├── .bashrc ├── .cshrc ├── install.log
...省略若干行...
[root@king ~]# tree -L 1 / #<==-L參數後接數字,表示查看目錄的層數,不帶-L選項默 認顯示全部層數。 / ├── bin ├── boot ...省略若干行... ├── sys ├── tmp ├── usr └── var 20 directories, 0 files
[root@king ~]# tree -d /etc/ #<==-d參數表示只顯示目錄。 /etc/ |-- ConsoleKit | |-- run-seat.d | |-- run-session.d | '-- seats.d |-- NetworkManager | '-- dispatcher.d ……省略若干行 [root@oldboy ~]# tree -dL 1 /etc/ #<==-d參數只顯示目錄,-L參數顯示層數,這裏是1層。 /etc/ |-- ConsoleKit |-- NetworkManager |-- X11 ……省略若干行
[root@king ~]# tree -L 1 -F /boot/ #<==使用-F參數會在目錄後面添加「/」,方便區分目錄 /boot/ ├── config-2.6.32-504.el6.x86_64 ├── efi/ ├── grub/ ├── initramfs-2.6.32-504.el6.x86_64.img ├── lost+found/ ├── symvers-2.6.32-504.el6.x86_64.gz ├── System.map-2.6.32-504.el6.x86_64 └── vmlinuz-2.6.32-504.el6.x86_64* [root@king ~]# tree -L 1 -F /boot/|grep /$ #<==過濾以斜線結尾的全部內容 /boot/ |-- efi/ |-- grub/ |-- lost+found/ 3 directories, 5 files [root@king ~]# tree -L 1 -d /boot/ #<==使用-d參數只顯示目錄樹,這樣可輕鬆過濾內容中的目錄
/boot/
|-- efi
|-- grub
'-- lost+found
3 directories
說明:$在Linux正則表達式中標識以什麼什麼結尾,^表示以什麼什麼開頭,^$表示空行,此處只作簡要說明,如要深究請看博主的Linux正則簡介blog