Linux雜談: 樹形顯示多級目錄--tree
阿新 • • 發佈:2018-02-27
顏色顯示 節點 隱藏文件 tree 命令 直觀 使用 rst 完整 執行
最近寫博客的時候偶爾會需要將文件目錄結構直觀地列出來,例如python的包結構。
於是在網上搜了搜,發現了一個Linux下還不錯的工具--tree
tree 可以很直觀地顯示多級目錄結構。
1. 安裝方法
Ubuntu上直接
sudo apt install tree
2. 幾個比較常規的用法:
1. 顯示目錄結構
[root@ Test]# tree . └── Level-1 ├── L1-File-1.txt ├── L1-File-2.txt ├── Level-2-1 │ ├── L21-File-1.txt │ ├── Level-3-1 │ │ └── L31-File-1.txt │ ├── Level-3-2 │ │ └── L32-File-1.txt │ └── Level-3-3 │ └── L33-File-1.txt ├── Level-2-2 │ └── L22-File-1.txt └── Level-2-3 7 directories, 7 files
2. 包含隱藏文件
[root@ Test]# tree -a . └── Level-1 ├── L1-File-1.txt ├── L1-File-2.txt ├── .L1-hide.dat ├── Level-2-1 │ ├── L21-File-1.txt │ ├── .L2-hide.dat │ ├── Level-3-1 │ │ └── L31-File-1.txt │ ├── Level-3-2 │ │ └── L32-File-1.txt │ └── Level-3-3 │ └── L33-File-1.txt ├── Level-2-2 │ └── L22-File-1.txt └── Level-2-3 7 directories, 9 files
3. 控制深度(假設為3)
[root@ Test]# tree -L 3 . └── Level-1 ├── L1-File-1.txt ├── L1-File-2.txt ├── Level-2-1 │ ├── L21-File-1.txt │ ├── Level-3-1 │ ├── Level-3-2 │ └── Level-3-3 ├── Level-2-2 │ └── L22-File-1.txt └── Level-2-3 7 directories, 4 files
4. 只顯示目錄
[root@ Test]# tree -d . └── Level-1 ├── Level-2-1 │ ├── Level-3-1 │ ├── Level-3-2 │ └── Level-3-3 ├── Level-2-2 └── Level-2-3 7 directories
5. 對需要顯示的文件進行過濾
# 只顯示包含 "L2"字符串的文件,並將過濾後的空目錄也同時過濾掉 [root@ Test]# tree -P ‘*L2*‘ --prune . └── Level-1 ├── Level-2-1 │ └── L21-File-1.txt └── Level-2-2 └── L22-File-1.txt 3 directories, 2 files # 只顯示不包含 "L2"字符串的文件,並將過濾後的空目錄也同時過濾掉 [root@ Test]# [root@ Test]# tree -I ‘*L2*‘ --prune . └── Level-1 ├── L1-File-1.txt ├── L1-File-2.txt └── Level-2-1 ├── Level-3-1 │ └── L31-File-1.txt ├── Level-3-2 │ └── L32-File-1.txt └── Level-3-3 └── L33-File-1.txt 5 directories, 5 files
3. 更多的選項
選項 | 說明 |
-a | 顯示所有文件,包含隱藏文件。 |
-d | 只顯示目錄。 |
-l | 跟蹤符號鏈接,如果鏈接的是一個目錄,則當成目錄處理。 |
-f | 顯示完整路徑。 |
-x | 只顯示本文件系統。 |
-L level | 控制顯示的目錄深度。 |
-R | 在下級目錄中,再次執行 tree 命令並且加上 ‘-o 00Tree.html‘選項,配合-L,-H使用。 |
-P pattern | 只顯示匹配了 pattern 的文件(不是目錄),支持簡單的正則表達式。 |
-I pattern | 與-P相反,只顯示沒有匹配 pattern的文件。 |
--ignore-case | 當使用了-P或-I選項時,忽略大小寫。 |
--matchdirs | 當使用了-P選項時,文件名包含完整路徑。 |
--prune | 不顯示空目錄,如果經過-P或-I後沒有目錄下沒有需要顯示的,也當作空目錄。 |
--noreport | 不顯示最後的統計信息。 |
--charset charset | 指定字符集。 |
--filelimit # | 過濾掉文件個數超過 # 的目錄。 |
--timefmt fmt | 按照指定的格式打印文件的修改時間。 |
-o filename | 將結果輸出到文件。 |
-q | 用問號代替不可打印的字符。 |
-N | 用八進制代替不可打印的字符。 |
-Q | 用引號將文件名括起來。 |
-p | 顯示文件的類型和權限。 |
-u | 顯示文件所屬的用戶名或者UID。 |
-g | 顯示文件所屬的組或者GID。 |
-s | 顯示文件的大小,單位:字節。 |
-h | 顯示文件的大小,使用更人性化的顯示。 |
--si | 顯示文件的大小,類似 -h 但是使用國際公制單位(1k=1000)。 |
--du | 對於目錄,顯示其下所有文件的累計大小。 |
-D | 顯示文件的最後修改時間。 |
-F | 類似 ls -F,對不同的文件類型,在末尾加上不同的字符。 |
--inodes | 顯示文件的索引節點。 |
--device | 顯示文件所屬的設備號。 |
-v | 顯示的文件列表按照version排序。 |
-t | 顯示的文件列表按照最後修改時間排序。 |
-c | 顯示的文件列表按照最後的狀態改變時間排序。 |
-U | 不進行排序處理。 |
-r | 反向輸出列表。 |
--dirsfirst | 優先顯示目錄(同一級別 ) |
--sort[=name] | 指定排序方式,name(default), ctime, mtime, size, version. |
-i | 輸出中不要進行縮進。 |
-A | 使用ASCII的橫線字符表示縮進。 |
-S | 使用CP437的橫線字符表示縮進。 |
-n | 關閉顏色顯示。 |
-C | 打開顏色顯示。 |
-X | 使能XML格式輸出。 |
-J | 使能JSON格式輸出。 |
-H baseHREF | 使能HTML格式輸出,並包含基本http鏈接地址。 |
-T title | 在HTML格式輸出中,設置標題和H1標簽頭 |
--nolinks | 在HTML格式輸出中,不輸出超鏈接。 |
Linux雜談: 樹形顯示多級目錄--tree