Windows和Linux的tree工具

目錄

1.前言

2.Linux的tree工具

2.1.安裝tree

2.2.常用命令與參數

2.3.常見應用場景

2.4.注意事項

3.Windows的tree工具

3.1.基礎語法

3.2.核心參數詳解

3.3.常見應用場景

3.4.局限性與增強方案

4.Windows 與 Linux?tree?的核心差異

5.tree工具優勢

5.總結

相關鏈接


1.前言

? ? ? ? 在閱讀工程源代碼的時候,一開始很想大概瀏覽一下整個項目的目錄,層次結構和各目錄大致有那些文件,如下面這種:

此時,tree命令就正好用得到。

????????tree 是一個實用的目錄列表工具,以樹形結構遞歸顯示文件和目錄,直觀展示層級關系。它支持自定義過濾、排序、輸出格式等功能,是管理文件系統的利器。Windows 和 Linux 系統中都有類似工具,但功能和使用方式略有差異。

2.Linux的tree工具

Linux 系統通常默認不預裝?tree,但可以通過包管理器快速安裝,功能豐富且參數靈活。

2.1.安裝tree

Debian/Ubuntu 系

sudo apt update && sudo apt install tree

?RedHat/CentOS 系

sudo yum install tree  # CentOS 7及以下
# 或
sudo dnf install tree  # CentOS 8+/Fedora

Arch 系

sudo pacman -S tree

2.2.常用命令與參數

基本語法:tree [參數] [目錄路徑](默認顯示當前目錄)

通過 man tree 命令查看幫助信息

大致看了下,翻譯了一些常見的選項如下:

-a            #顯示所有文件和目錄
-d            #顯示目錄名稱而非文件
-l            #如遇到性質為符號連接的目錄,直接列出該連接所指向的原始目錄
-f            #在每個文件或目錄之前,顯示完整的相對路徑名稱
-x            #將范圍局限在現行的文件系統中,若指定目錄下的某些子目錄,其存放于另一個文件系統上,則將該目錄予以排除在尋找范圍外
-L level      #限制目錄顯示層級
-R            #不要列出與給定模式匹配的文件
-P pattern    #<范本樣式> 只顯示符合范本樣式的文件和目錄名稱
-I pattern    #不列出與給定模式匹配的文件
--ignore-case #模式匹配時忽略大小寫
--matchdirs   #在-P模式匹配中包含目錄名
--noreport    #關閉樹列表末尾的文件/目錄計數
--charset X   #將字符集X用于終端/HTML和縮進行輸出
--filelimit   #請勿下載包含超過個文件的目錄
--timefmt <f> #根據格式<f>打印和格式化時間
-o filename   #輸出到文件而不是輸出到屏幕
--du          #打印目錄大小
--prune       #從輸出中刪除空目錄
-------- 文件選項 ---------
-q            #用“?”號取代控制字符,列出文件和目錄名稱
-N            #直接列出文件和目錄名稱,包括控制字符
-Q            #用雙引號引用文件名
-p            #列出權限標示
-u            #列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼
-g            #列出文件或目錄的所屬群組名稱,沒有對應的名稱時,則顯示群組識別碼
-s            #列出文件和目錄大小
-h            #以更易讀的方式打印大小
--si          #類似于-h,但使用國際單位制(1000的冪)
-D            #列出文件或目錄的更改時間
-F            #在執行文件,目錄,Socket,符號連接,管道名稱名稱,各自加上"*","/","@","|"號
--inodes      #打印每個文件的索引節點號
--device      #打印每個文件所屬的設備ID號
------- 排序選項 -------
-v            #按字母數字對文件進行排序
-t            #用文件和目錄的更改時間排序
-c            #按最后的更改時間對文件進行排序
-U            #天下黃河
-r            #反轉排序順序
--dirsfirst   #在文件之前列出目錄(-U禁用)
--sort X      #選擇排序:名稱、版本、大小、時間、時間
------- 圖形選項 ------
-i            #不以階梯狀列出文件和目錄名稱
-A            #使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合
-S            #使用CP437(控制臺)圖形壓痕線打印
-n            #始終關閉著色(-C覆蓋)
-C            #在文件和目錄清單加上色彩,便于區分各種類型
------- XML / HTML / JSON選項 -------
-X            #打印出XML表示形式的樹
-J            #打印出JSON表示形式的樹
-H baseHREF   #打印出以baseHREF為頂部目錄的HTML格式
-T string     #將默認HTML標題和H1標頭替換為字符串
--nolinks     #關閉HTML輸出中的超鏈接
---- 雜項選項 ----
--version     #輸入版本信息
--help        #打印使用幫助信息
--            #選項處理終止符

2.3.常見應用場景

1.查看項目核心結構(排除冗余目錄)

# 顯示Python項目前3層結構,排除虛擬環境、緩存和日志目錄
tree -L 3 -I "venv|__pycache__|logs" -d

2.生成帶文件大小的文檔目錄樹(用于說明文檔)

# 顯示docs目錄所有內容(包括隱藏文件),帶大小,不顯示統計,保存到文件
tree -a -h --noreport docs/ -o docs_tree.txt

3.篩選特定類型文件并顯示完整路徑

# 查找所有.sh腳本,顯示完整路徑,限制2層深度
tree -L 2 -f -P "*.sh"

4.查看目錄權限結構(系統管理)

# 查看/etc下的權限和目錄結構,先顯示目錄
tree -d -p --dirsfirst /etc -L 2

5.顯示文件權限、所有者和所有組(-p、-u、-g)

6.完整路徑顯示(-f)

7.輸出重定向(-o)

[root@blog ~]# tree -o structure.txt #將結果保存到文件#驗證
[root@blog ~]# cat structure.txt
.
├── anaconda-ks.cfg
├── dir1
│   ├── file1.txt
│   └── subdir
├── dir2
│   └── report.pdf
└── structure.txt3 directories, 4 files

8.以易讀的格式輸出文件目錄(-h)

[root@blog ~]# tree -h
.
├── [ 1.5K]  anaconda-ks.cfg
├── [   37]  dir1
│   ├── [    0]  file1.txt
│   └── [    6]  subdir
├── [   24]  dir2
│   └── [    0]  report.pdf
└── [  469]  structure.txt3 directories, 4 files

9.生成JSON格式列表(-J)

10.查看文件占用空間大小

11.結合grep過濾內容

2.4.注意事項

1.超大目錄建議配合-L參數限制遍歷層數。

2.使用 tree | grep "files"可以顯示文件總數,輸出末尾會統計

3.tree命令若不添加任何選項,默認顯示當前目錄下所有可見文件和目錄(不含隱藏文件),并在末尾顯示統計信息(總目錄數、總文件數)。

3.Windows的tree工具

Windows 系統中的?tree?工具主要用于在命令行(CMD 或 PowerShell)中以樹形結構展示目錄和文件,雖然功能不如 Linux 版本豐富,但足以滿足基礎的目錄可視化需求。

3.1.基礎語法

在?CMD 命令提示符?中直接使用(PowerShell 需通過兼容模式調用),基本格式:

tree [目錄路徑] [參數]
  • 若不指定?[目錄路徑],默認顯示當前目錄的結構。
  • 若不添加參數,默認只顯示目錄(不包含文件),并在末尾顯示統計信息(總目錄數)。

3.2.核心參數詳解

Windows 的?tree?工具參數較少,主要有以下 2 個常用參數:

參數功能說明
/f顯示目錄結構的同時,包含所有文件(默認只顯示目錄)。
/a用?ASCII 字符?顯示樹形邊框(如?+-、`),默認用 Unicode 字符(如?─`)。適合在不支持 Unicode 的環境中使用(避免亂碼)。

3.3.常見應用場景

1.顯示當前目錄的目錄結構(不含文件)

tree卷 系統 的文件夾 PATH 列表
卷序列號為 XXXX-XXXX
C:\USER\PROJECT
├─docs
├─src
│  └─utils
└─tests

2.顯示當前目錄的完整結構(包含所有文件)

tree /f卷 系統 的文件夾 PATH 列表
卷序列號為 XXXX-XXXX
C:\USER\PROJECT
├─docs
│  └─README.md
├─src
│  ├─main.py
│  └─utils
│     └─helper.py
└─tests└─test_main.py

3.顯示指定目錄的結構(如 D 盤的 Downloads 文件夾)

tree D:\Downloads /f

作用:展示?D:\Downloads?目錄下的所有子目錄和文件。

4.用 ASCII 字符顯示結構(避免 Unicode 亂碼)

tree /a 卷 系統 的文件夾 PATH 列表
卷序列號為 XXXX-XXXX
C:\USER\PROJECT
+---docs
+---src
|   \---utils
\---tests

5.將目錄結構輸出到文件(用于保存或分享)

tree /f > 目錄結構.txt

作用:將當前目錄的完整結構(含文件)寫入?目錄結構.txt?文件,方便在文檔中引用或發送給他人。

3.4.局限性與增強方案

Windows 原生?tree?工具功能較簡單,不支持?以下功能:

  • 限制顯示層級(如只顯示前 2 層);
  • 過濾特定類型文件(如只顯示?.txt?文件);
  • 排除指定目錄(如忽略?node_modules);
  • 顯示文件大小、權限等屬性。

若需要更強大的功能,可安裝?類 Linux 的?tree?工具

1.先安裝 Windows 包管理器?Chocolatey(管理員 PowerShell 中執行):

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

2.安裝增強版?tree

choco install tree

3.使用方法與 Linux?tree?完全一致(支持?-L-I?等參數):

tree -L 2 -I "venv"  # 顯示2層結構,排除venv目錄

4.Windows 與 Linux?tree?的核心差異

特性Linux?treeWindows 原生?tree
功能豐富度高(支持過濾、大小顯示、深度控制等)低(僅基礎目錄樹顯示)
隱藏文件顯示支持(-a?參數)不支持(需手動篩選)
跨平臺一致性各 Linux 發行版用法統一僅 CMD 支持,PowerShell 需模擬
安裝需求需手動安裝(多數系統)系統自帶(CMD 中)

5.tree工具優勢

1.直觀的層級可視化,一目了然

tree?以樹形分支結構展示目錄和文件的層級關系,用線條(如?|├─└─)清晰區分父子目錄,相比?ls -lR?等命令輸出的平鋪式列表,能瞬間讓人理解目錄的嵌套邏輯。

例如,一個項目的樹形結構:

project/
├── src/
│   ├── main.py
│   └── utils/
│       └── helper.py
├── docs/
│   └── README.md
└── requirements.txt

這種結構比逐行查看路徑更易把握整體框架,尤其適合復雜項目(如代碼倉庫、多層級文檔)。

2.靈活控制顯示范圍,避免信息過載

tree?支持通過參數精準過濾內容,只展示需要的信息,避免被冗余內容干擾:

  • 限制深度:用?-L N(Linux)或通過工具擴展(Windows)控制顯示的層級(如只看前 2 層),適合大型目錄(如系統文件、深度學習項目)。
  • 只看目錄 / 文件:用?-d(Linux)只顯示目錄,或結合?-f?只關注文件,快速定位 “容器” 或 “內容”。
  • 按名稱過濾:用?-P 模式(如?-P "*.py")只顯示特定類型文件,或?-I 模式(如?-I "venv")排除冗余目錄(如虛擬環境、緩存文件夾)。

3.高效集成額外信息,一站式獲取關鍵數據

除了結構,tree?能通過參數直接附加實用信息,無需額外命令:

  • 文件大小:-h(Linux)以人類可讀單位(K、M、G)顯示大小,快速判斷大文件位置。
  • 完整路徑:-f(Linux)顯示每個文件 / 目錄的絕對路徑,方便直接復制使用(如在腳本中引用)。
  • 隱藏文件:-a(Linux)顯示?.gitignore.env?等隱藏文件,避免遺漏關鍵配置。

4.?輕量快捷,跨場景適配性強

  • 操作簡單:基礎用法只需?tree [目錄],無需記憶復雜參數,新手也能快速上手。
  • 跨平臺兼容:Linux、macOS(需安裝)、Windows(原生或第三方工具)均支持,習慣后可在不同系統中保持一致操作。
  • 便于分享與存檔:輸出結果可直接重定向到文件(如?tree > structure.txt),用于文檔記錄、項目說明或遠程溝通(如向同事展示目錄結構)。

5.總結

??tree?工具的核心優勢在于將復雜的目錄關系 “圖形化”,同時通過靈活的過濾和信息附加功能,幫助用戶在短時間內掌握目錄的整體結構、關鍵文件位置和必要屬性,大幅提升文件管理和項目梳理的效率,尤其適合開發者、運維人員或需要頻繁處理多層級文件的場景。

相關鏈接

Linux 教程 | 菜鳥教程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/91691.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/91691.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/91691.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[echarts] 更新數據

option {title: { text: 銷售數據 },tooltip: { trigger: axis },legend: { data: [銷量, 庫存] },xAxis: {type: category,data: [襯衫, 羊毛衫, 雪紡衫]},yAxis: { type: value },series: [{ name: 銷量, type: bar, data: [5, 20, 36] },{ name: 庫存, type: line, data: […

通過el-image實現點擊文字查看圖片,及其圖片列表

場景一&#xff1a;表格中有時候會有點擊文字查看圖片的功能&#xff08;因為表格的一個單元格不方便顯示多個圖片&#xff09;如下圖所示&#xff1a;對于這個需求&#xff0c;我們可以應對的方案是&#xff1a;在文字旁邊寫一個el-image圖默認顯示多張圖片中的第一張&#xf…

003 實習(前端jquery之輪播圖,學校網頁)

web前端,查詢官網:w3schoolHTML:負責網頁結構&#xff08;頁面元素和內容&#xff09;CSS:負責網頁的表現&#xff08;網頁元素的外觀、位置等頁面樣式&#xff0c;如顏色&#xff0c;大小&#xff09;JAVAScript:負責網頁的行為&#xff08;交互效果&#xff09;<a>:超鏈…

Mysql group by

臨時表與內存表 內存表是 Memory 引擎表&#xff0c;表的數據行都在內存。 臨時表可以使用各種引擎。 臨時表是線程私有表&#xff0c;其他線程不可見&#xff0c;不需考慮重名問題。 session 結束時臨時表會被自動刪除。 如果 Binlog_format row&#xff0c;則臨時表語句不進…

Linux(15)——進程間通信

目錄 一、進程間通信的介紹 ??進程間通信的目的 ??進程間通信的本質 進程間通信的分類 ??管道 ??System V IPC ??POSIX IPC 二、管道 &#x1f9e0;什么是管道 ??匿名管道 &#x1f4dd;匿名管道的原理 &#x1f4dd;pipe函數 &#x1f4dd;匿名管道…

【Flutter】雙路視頻播放方案

最近在做雙路視頻播放&#xff0c;就是在一個頁面播放兩個視頻。我遇到的問題就是音頻焦點沖突問題&#xff0c;在下面說明。什么是雙路視頻播放&#xff08;來自AI&#xff09;雙路視頻播放&#xff08;Dual-Video Playback&#xff09;&#xff0c;從字面上理解&#xff0c;就…

筆試——Day25

文章目錄第一題題目思路代碼第二題題目&#xff1a;思路代碼第三題題目&#xff1a;思路代碼第一題 題目 笨小猴 思路 模擬 統計每個字符出現的次數&#xff0c;用最大減最小&#xff0c;判斷是不是質數&#xff1b; 質數的判斷使用試除法&#xff1b; 代碼 第二題 題目&…

【C#學習Day15筆記】拆箱裝箱、 Equals與== 、文件讀取IO

前言在C#第15天的學習中&#xff0c;我深入探索了類型轉換機制、對象比較原理和文件操作技術三大核心主題。這些知識是構建高效、健壯程序的關鍵基礎。本文完整保留我的課堂實踐代碼和命名體系&#xff0c;通過結構化梳理幫助大家掌握這些核心概念。所有代碼示例均來自我的實際…

發電類電力業務許可證申請條件

基本條件&#xff1a;法人資格&#xff1a;申請人必須是依法注冊的企業法人。 財務能力&#xff1a;應具有與所申請從事的電力業務相適應的財務能力。 專業人員要求&#xff1a;生產運行負責人、技術負責人、安全負責人和財務負責人需具備至少3年以上與申請從事的電力業務相關的…

JavaScript 高效入門指南:從基礎到實戰(VSCode 版)

廢話不多說&#xff0c;直接上干貨&#x1f600; 一、先搞定工具&#xff1a;VSCode 配置成「JS 開發神器」 工欲善其事&#xff0c;必先利其器。用 VSCode 寫 JavaScript&#xff0c;這幾個配置能讓你效率翻倍&#xff1a; 1. 必裝插件&#xff08;直接在 VSCode 插件商店搜…

《人形機器人的覺醒:技術革命與碳基未來》——類人關節設計:柔性驅動革命之液壓人工肌肉

目錄&#xff1a;一、人工肌肉的種類及人形機器人適用情況二、人形機器人用人工肌肉科研機構及其最新成果進展三、液壓人工肌肉種類及工作機制四、液壓人工肌肉適用人形機器人的性能要求和局限性五、液壓人工肌肉材料技術進展及其限制與突破六、波士頓動力Spot的液壓靜液傳動系…

26數據結構-順序表

&#x1f4cc;有序順序表的合并 #define MAX_SIZE 20 struct SeqList {int data[MAX_SIZE];int length; }; void mergeArray(SeqList &L1,SeqList &L2,SeqList &L) {int i0,j 0;while(i<L1.length && j<L2.length){if(L1.data[i]<L2.data[j])L.da…

25電賽e題 控制激光開關電路

e題明確說了禁止使用繼電器控制&#xff0c;所以需要自己搭建一個mos管控制電路這里使用mos管來驅動GPIO → 電阻(220Ω) → MOSFET柵極(如IRF520N)MOSFET漏極接激光器正極MOSFET源極接地激光器負極直接接電源連接方式如下這里r36為柵極電阻&#xff0c;需要跟你們使用的mos配合…

ubuntu apt源報錯?

報錯原因&#xff1a;一、網絡連接方面1.網絡不通暢&#xff08;常見&#xff09;簡單來說就是你的虛擬機連不上網&#xff0c;這時候你應該檢查自己的ip 是不是dhcp自動獲取的&#xff0c;或者你的網絡配置是否有誤。2.DNS 解析故障&#xff1a;DNS 服務器配置錯誤或 DNS 服務…

Scene as Occupancy

OccNet https://github.com/OpenDriveLab/OccNet Scene as Occupancy 提出了一種新的場景表示方法&#xff0c; 利用環視攝像頭&#xff0c;采用級聯和時序體素編碼的方式來重建三維Occ場景。Method 1&#xff09;提出的OCCNet首先重建占據描述符&#xff0c;目標是為支持下游任…

Linux基礎復習:字符輸入與輸出

該文僅針對自身對Linux基礎知識不足的地方進行補充擴展&#xff0c;便于鞏固。終端的輸入和輸出由字符設備管理。1、查看當前字符設備# 查看當前bash進程 [rootopenEuler-1 ~]# psPID TTY TIME CMD9662 pts/1 00:00:00 bash9938 pts/1 00:00:00 ps# 該目錄存放了…

【初識數據結構】CS61B中的基數排序

本教程介紹 CS61B 中的基數排序&#xff0c;這是一種可以在某些情況下甚至超越歸并排序、快速排序的特殊的排序方法&#xff0c;但是犧牲了內存空間計數排序 連續編號情形 我們需要對一個編號從 0 到 11 的表進行排序實際上我們可以拿出另一張同樣大小的空白表&#xff0c;在遍…

ReAct模式深度解析:構建具備推理能力的AI智能體架構

本文深入剖析ReAct(Reasoning+Acting)架構設計模式,揭示如何通過推理與行動循環構建具備自主決策能力的AI智能體,并展示其在復雜問題求解中的革命性突破。 引言:從工具調用到自主決策的進化 傳統AI系統面臨的核心瓶頸: #mermaid-svg-orlnKyviyW86xIJZ {font-family:&quo…

Corrosion2靶機攻略

第一步搭建環境 靶機下載地址&#xff1a;https://download.vulnhub.com/corrosion/Corrosion2.ova 下載完成后直接右擊用VM打開&#xff0c;重試一下就可以了 右擊虛擬機設置將網絡連接改成nat模式 第二步信息收集 查看一下靶機的網段&#xff0c;左上角編輯&#xff0c;虛…

SSL 剝離漏洞

一、SSL/TLS 協議基礎?1.1、SSL/TLS 協議的核心功能?SSL/TLS 協議的核心功能主要包括三個方面&#xff1a;加密、認證和完整性校驗&#xff0c;這三大功能共同構建了網絡通信的安全屏障。?&#xff08;一&#xff09;加密?加密是 SSL/TLS 協議最基本的功能。它通過使用對稱…