Leaves: 文字介面磁碟使用量樹狀圖視覺化工具"}]

Leaves: 文字介面磁碟使用量樹狀圖視覺化工具

Leaves 是一款受 WinDirStat 和 QDirStat 等工具啟發的文字模式磁碟使用量分析器。它將檔案和目錄視覺化為嵌套矩形的層級結構,其中每個矩形的面積與該項目在磁碟上的大小成正比。這種方法允許使用者在終端機環境中快速識別佔用磁碟空間的項目,對於無法使用圖形使用者介面的遠端 shell 連線特別有用。

使用樹狀圖視覺化磁碟使用量

Leaves 使用樹狀圖佈局來表示檔案系統。中央面板顯示不同大小的矩形;一個比其兄弟目錄大兩倍的檔案或目錄將佔用兩倍的矩形面積。

由於該工具是以字元級解析度運作,因此視覺化效果是一種粗略的近似值。為了管理這一點,Leaves 實作了幾項功能以防止視覺混亂:

  • 展開與收縮 (Expansion and Deflation):使用者可以根據需求展開或收縮目錄。收縮目錄會將其詳細的子矩形替換為檔案類型摘要,將具有相同副檔名的檔案分組到一個與其累計大小成正比的單一矩形中。
  • 最大深度控制 (Max Depth Control)--max-depth 旗標(預設為 5)允許使用者限制工具掃描目錄樹的深度,以提升記憶體效率和視覺清晰度。
  • X-Ray 模式:透過按下 x 鍵,使用者可以進入「x-ray」模式,該模式會在頂層按類型對檔案進行分組,然後再按目錄拆分這些區域。這提供了一個不同的視角,讓使用者了解在整個掃描路徑中,哪些類型的檔案佔用了最多的空間。

導覽與介面

介面分為三個主要區域:顯示目前路徑、總大小和檔案數量的標題列;帶有可摺疊瀏覽器樹的側邊欄;以及中央樹狀圖面板。

導覽透過鍵盤快捷鍵和滑鼠互動來處理:

  • 聚焦視圖 (Focus View):按下 Enter 會聚焦於選定的目錄,並將目前視圖替換為該目錄的內容。Backspace 會讓使用者返回父目錄。
  • 樹狀導覽 (Tree Navigation):方向鍵用於導覽瀏覽器樹,空白鍵用於開啟或關閉目錄。
  • 深度調整 (Depth Adjustment)+- 鍵用於調整視覺化的執行時深度。

設定與自訂

Leaves 可以透過位於 $USER_CONFIG_DIR/leaves/settings.toml 的設定檔,或透過以 LEAVES_ 為前綴的環境變數進行高度自訂。

主題與配色方案

項目根據其類型進行著色,以便於快速視覺掃描。目錄根據名稱使用冷色調調色盤(viridis)進行著色,而檔案則根據副檔名使用黃/橙/棕色方案進行著色。

內建了四種主題:

  • Fall:檔案使用暖色,目錄使用冷色。
  • Spring:副檔名使用冷色,目錄使用暖色。
  • Greys:灰色調。
  • Mono:黑白。

使用者也可以在 settings.toml 檔案中使用 HTML 色碼、hex RGB 或 HSL 三元組來定義自訂主題。

技術實作與限制

Leaves 是用 Rust 編寫的,需要 Rust 工具鏈來從原始碼構建。它支援多個平台的預建二進位檔。

掃描注意事項

當掃描根目錄 (/) 時,使用者應排除虛擬檔案系統,例如 /dev/proc/sys/run,以避免產生無意義的結果。這可以透過使用負向覆蓋(例如,leaves -A -d 3 / '!/proc' '!/tmp')來達成。

連結處理

  • 符號連結 (Symbolic Links):該工具不會追蹤符號連結,以避免在掃描目錄之外重複計算磁碟使用量。
  • 硬連結 (Hard Links):該工具不會偵測硬連結,這意味著它們會被重複計算。

社群洞察與替代方案

Hacker News 社群的使用者將 Leaves 比較了與其他磁碟使用量工具。雖然有些人偏好 ncdu, dua-cli, 或 mcdu 等傳統的列表式方法,但其他人發現樹狀圖視覺化對於發現大型檔案群組更為直觀。

"檔案類型副檔名分組功能是一個非常聰明的設計,用來處理字元方塊的限制。"

其他提到的替代方案包括 GUI 工具如 WizTree, GrandPerspective, 和 SpaceSniffer,以及 TUI 工具 Broot(特別是 br -w 指令)。

Sources