每天敲的那條列目錄指令,eza 重新做了一遍
摘要
列目錄這件事被 eza 重做了一回:按檔案類型上色、欄位排得看得懂、每行行尾直接標出版本狀態,還內建樹狀檢視。單一 Rust 執行檔,參數與舊習慣相容,設一個別名就換過去。
推薦- 軟體名稱
- eza
- 版本
- 0.23.5
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsmacOSLinux
- 更新時間
- 2026-10-06 21:06
五十年沒變過的列目錄
打開終端機敲下的第一道指令,幾乎都是列出目錄,而負責這件事的工具半個世紀以來幾乎沒動過。名稱就那樣排成一欄,資料夾與壓縮檔要讀到副檔名才分得出來,某個檔案在版本庫裡動過沒有,還得再敲第二道指令去問。想要樹狀結構,等於另外裝一套程式。這些都算不上壞掉,只是老到沒有人記得當初是誰決定的。
eza 把這一步重做了一回。項目按類型上色,資料夾、壓縮檔、可執行檔與連結一眼分開,不必再逐字讀副檔名。欄位排得整齊,大小、擁有者與時間對得起來,不會愈看愈歪。在版本庫裡,每一行的行尾直接標出該檔案的修改狀態,於是你原本要再敲一道指令去問的問題,當場就有答案。樹狀檢視、圖示、格狀排列都是同一個工具裡的選項,不是另外下載、另外記參數的另一套東西。

它是 Rust 寫的單一執行檔,語言本身不是重點,重點是隨之而来的後果:啟動快、輸出快、佔用的記憶體幾乎看不見。列目錄這種一天要叫上幾百次的工具,呼叫成本本來就不該量得出來。這裡量不出來。
站在 exa 肩上,再往前走
這套設計大半來自 exa,一個很多老終端使用者至今仍有感情的作品。可惜 exa 後來停止更新,使用者於是卡在一個尷尬的位置:自己喜歡,卻不敢推薦給剛入門的人。eza 是社群接手的續作,保留原專案建立起來的習慣,同時持續往上加:清單裡顯示擴充屬性、輸出中的超連結、更靈活的過濾規則、可調整的時間格式。

日常使用的遷移只有一個別名。在 shell 設定裡把熟悉的那道指令指向 eza,所有既有的手感照常運作,變的只是底下吐出來的東西。Windows 終端機與 macOS、Linux 一併涵蓋,安裝就是機器上既有套件管理器的一行指令。這一點決定了工具是「試過就算」還是「留下來用」。
可以預期的第一個反對是:終端機裡上色只是裝飾,而裝飾通常是人沒話說的時候才加的。這裡該回答的是,有用的部分在於分辨。當一份清單能用顏色把資料夾、連結與可執行檔分開,眼睛就停止逐字讀副檔名,開始讀一個目錄的結構,而那才是你真正想知道的。欄位對齊也是同一個道理:你很少只想知道某一個檔案是什麼,多半是在比較這堆檔案之間的差別。
第二個反對是:值得為此學新東西嗎。不值得,因為沒有東西要學。它是對一道已經會的指令做參數相容的重構,這種位置在軟體裡並不常見。多數號稱現代化的工具,代價是要你改用一套新流程;這一個只要求一個別名,然後就退到旁邊不擋路,這也正是它能塞進習慣、而不是取代習慣的原因。
eza 想說的是:常用不等於已經做完。一天敲上幾百次的指令,值得認真現代化一次,而效率與好看原來並不衝突。
學習成本接近零。參數與舊指令大致相容,肌肉記憶吐出來的東西照樣能跑;說明頁花十分鐘翻完,新選項也就懂了。專案採 MIT 授權,社群活躍,版本按月滾動,不是久久才放一次,目前這一版是 2026 年 9 月的 0.23.5。
這種改動值得做,正是因為它小。不必學新流程、不必重寫設定檔、不必養一個常駐服務。只要在 shell 設定裡加一行,一道你本來就一天敲幾百次的指令,從此不再像一九七五年的產物。在命令列生活裡所有能做的改良中,這一個的努力與每日回報之比最好。