命令簡介
tree命令的中文意思為“樹”,功能是以樹形結構列出指定目錄下的所有內容,包括所有文件、子目錄及子目錄里的目錄和文件。
命令格式
tree [option] [directory]
tree [選項] [目錄]
說明:
1)注意tree命令以及后面的選項和目錄,每個元素之間都至少要有一個空格
2)tree命令后若不接選項和目錄就會默認顯示當前所在路徑目錄的目錄結構
tree命令的參數選項及說明,圖片來源於 【跟老男孩學Linux運維:核心系統命令】
舉例
在舉例前,我們是不是應該安裝好tree命令呢?(如果你也采用最小化安裝Linux系統的方式,那么tree命令可能沒有安裝,此時我們應該用yum命令來安裝tree命令)
[root@king ~]# rpm -qa tree #<==查詢tree命令是否安裝。 tree-1.5.3-2.el6.x86_64 #<==如果沒有顯示就執行下面的命令 [root@king ~]# yum -y install tree #<==安裝tree命令的yum命令
臨時解決樹結構亂碼的方法
[root@king ~]# LANG=en_US.UTF-8
例子一:不帶任何參數執行tree命令
[root@king etc]# cd ~ [root@king ~]# tree #<==顯示當前目錄的結構。 . #<==“.”以當前目錄為起點。 ├── anaconda-ks.cfg ├── install.log └── install.log.syslog 0 directories, 3 files
例子二:以樹形結構顯示目錄下的所有內容(-a的功能)
[root@king ~]# tree -a #<==帶-a參數顯示所有文件(包括隱藏文件)。 . ├── anaconda-ks.cfg ├── .bash_history #<==在Linux系統中,以“.”點號開頭的文件為隱藏文件,默認不顯示。 ├── .bash_logout ├── .bash_profile ├── .bashrc ├── .cshrc ├── install.log
...省略若干行...
例子三:只列出根目錄下第一層目錄的結構(-L功能)
[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 ……省略若干行
例子五:用tree命令來區分目錄和文件的方法(很常用滴哦)
[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正則簡介