開發工具

tree-to-file.sh

一個託管在 helper.sh 的 Shell 腳本,適用於 Linux、macOS 與常見 Unix 環境,用來把過濾後的目錄樹匯出到文字檔。它優先使用系統自帶的 tree;若未安裝,會依目前環境嘗試呼叫套件管理器安裝;若安裝仍不可行,則自動回退到內建的 find + awk 方案,確保仍能產出結果。

一鍵命令

curl -fsSL helper.sh/tree-to-file.sh | sh
curl -fsSL helper.sh/tree-to-file.sh -o tree-to-file.sh && sh tree-to-file.sh tree.txt 'venv|__pycache__|.git|.gitignore|docker|node_modules|.idea'

執行要求

  • Linux、macOS 或常見 Unix Shell 環境
  • sh
  • find
  • awk
  • 若需自動安裝 tree,最好具備 sudo 或 root 權限

適用場景

  • 把專案結構匯出到 tree.txt,用於提問、錯誤回報或提供給 AI 作為上下文
  • 跳過 venv、node_modules 等大型目錄,產生更適合分享的目錄概覽
  • 在 Linux 與各類 Unix-like 主機上統一目錄樹匯出方式

腳本亮點

  • 優先使用系統 tree,輸出形式更符合常見習慣
  • 內建 brew、apt、dnf、yum、pacman、zypper、apk、pkg 等常見安裝路徑
  • 即使無法安裝 tree,也會自動回退到內建渲染邏輯繼續產生 tree.txt

推薦流程

  1. 從 helper.sh 拉取腳本並用 sh 執行。
  2. 腳本會先檢查目前系統是否已提供 tree 命令。
  3. 如果 tree 缺失,會在可行時嘗試透過系統套件管理器安裝。
  4. 執行完成後,在目前目錄檢查產生的 tree.txt。

安全提示

  • 在敏感主機上,建議先查看原始腳本內容,再決定是否直接 pipe 給 sh。
  • 自動安裝 tree 可能需要 sudo 或 root,並且可能觸發套件索引更新。
  • 內建回退邏輯會以目錄名稱精確忽略,不支援完整 shell glob 語法。

相關文章

tree-to-file.sh 在 CentOS 7 與常見 Unix 主機上的安裝與使用過程

一篇面向實作的說明,講清楚 tree-to-file.sh 在 CentOS 7 上如何自動安裝 tree、如何匯出目錄結構,以及它適合用在遷移準備、主機排查與 AI 上下文整理的哪些場景。

相關專題

CentOS 7 維運恢復

面向仍在運行 CentOS 7 的遺留主機,集中處理 yum 源失效、鏡像倉庫 404、Docker 資料遷移等維運恢復場景。

查看專題

問題頁面

如何在 Linux 上匯出目錄樹到 tree.txt

當你需要一套可重用的方法匯出目前目錄結構,並在缺少 tree 時自動安裝它,就用 tree-to-file.sh。

打開頁面