Featured image of post 在 Linux 中使用 gdu 替代 du 來檢視資料夾大小

在 Linux 中使用 gdu 替代 du 來檢視資料夾大小

gdu 是一個用於檢視資料夾大小的工具,提供了更直觀的界面和更多的功能,可以幫助你更好地管理磁盤空間。

最後更新
約 1250 字

前言

gdu 是一個用於檢視資料夾大小的工具,提供了更直觀的界面和更多的功能,可以幫助你更好地管理磁盤空間。gdu 主要用於 SSD 硬碟,可以充分利用並行處理。然而 HDD 也可以使用,但性能提升不會那麼明顯。

這是一個類似於 ncdu 的工具,使用了 Go 語言編寫,並且支持交互式和非交互式模式。

如想使用 ncdu 可以參考 在 Linux 中使用 ncdu 來檢視資料夾大小

安裝

前往 releases 頁面下載適用於你系統的二進制檔案。

使用 curl:

1
2
3
curl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz | tar xz
chmod +x gdu_linux_amd64
mv gdu_linux_amd64 /usr/bin/gdu

使用方

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
gdu [flags] [directory_to_scan]

參數:
      --config-file string            從文件讀取配置 (默認為 $HOME/.gdu.yaml)
  -g, --const-gc                      在分析期間啟用內存垃圾回收,並設置 GOGC 的常量級別
      --enable-profiling              啟用性能分析數據收集,並在 http://localhost:6060/debug/pprof/ 提供
  -L, --follow-symlinks               跟隨文件的符號鏈接,即顯示符號鏈接指向的文件大小 (不跟隨指向目錄的符號鏈接)
  -h, --help                          gdu 的幫助
  -i, --ignore-dirs strings           忽略的路徑 (用逗號分隔)。可以是絕對路徑或相對於當前目錄的路徑 (默認 [/proc,/dev,/sys,/run])
  -I, --ignore-dirs-pattern strings   忽略的路徑模式 (用逗號分隔)
  -X, --ignore-from string            從文件中讀取忽略的路徑模式
  -f, --input-file string             從 JSON 文件導入分析
  -l, --log-file string               日誌文件的路徑 (默認 "/dev/null")
  -m, --max-cores int                 設置 Gdu 將使用的最大核心數。可用 12 核心 (默認 12)
  -c, --no-color                      不使用彩色輸出
  -x, --no-cross                      不跨越文件系統邊界
      --no-delete                     不允許刪除
  -H, --no-hidden                     忽略隱藏目錄 (以點開頭)
      --no-mouse                      不使用鼠標
      --no-prefix                     在非交互模式下顯示原始數字大小,不帶任何前綴 (SI 或二進制)
  -p, --no-progress                   在非交互模式下不顯示進度
  -u, --no-unicode                    不使用 Unicode 符號 (用於大小條)
  -n, --non-interactive               不在交互模式下運行
  -o, --output-file string            將所有信息導出為 JSON 文件
  -r, --read-from-storage             從持久化的鍵值存儲中讀取分析數據
      --sequential                    使用順序掃描 (適用於旋轉 HDD)
  -a, --show-apparent-size            顯示表觀大小
  -d, --show-disks                    顯示所有掛載的磁盤
  -C, --show-item-count               顯示目錄中的項目數量
  -M, --show-mtime                    顯示目錄中項目的最新修改時間
  -B, --show-relative-size            顯示相對大小
      --si                            使用十進制 SI 前綴 (kB, MB, GB) 而不是二進制前綴 (KiB, MiB, GiB) 顯示大小
      --storage-path string           持久化鍵值存儲目錄的路徑 (默認 "/tmp/badger")
  -s, --summarize                     在非交互模式下僅顯示總計
  -t, --top int                       在非交互模式下僅顯示前 X 個最大文件
      --use-storage                   使用持久化鍵值存儲進行分析數據 (實驗性)
  -v, --version                       打印版本
      --write-config                  將當前配置寫入文件 (默認為 $HOME/.gdu.yaml)

交互模式下的基本操作列表 (顯示幫助模態以獲取更多信息):
  ↑ 或 k                              向上移動光標
  ↓ 或 j                              向下移動光標
  → 或 Enter 或 l                     進入高亮顯示的目錄
  ← 或 h                              返回父目錄
  d                                   刪除選定的文件或目錄
  e                                   清空選定的目錄
  n                                   按名稱排序
  s                                   按大小排序
  c                                   顯示目錄中的項目數量
  ?                                   顯示幫助模態

範例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
gdu                                   # 分析當前目錄
gdu -a                                # 顯示表觀大小而不是磁盤使用量
gdu --no-delete                       # 防止寫操作
gdu <some_dir_to_analyze>             # 分析指定目錄
gdu -d                                # 顯示所有掛載的磁盤
gdu -l ./gdu.log <some_dir>           # 將錯誤寫入日誌文件
gdu -i /sys,/proc /                   # 忽略某些路徑
gdu -I '.*[abc]+'                     # 通過正則表達式忽略路徑
gdu -X ignore_file /                  # 從文件中讀取忽略的路徑模式
gdu -c /                              # 僅使用白色/灰色/黑色

gdu -n /                              # 僅打印統計信息,不啟動交互模式
gdu -np /                             # 不顯示進度,適用於腳本輸出
gdu -nps /some/dir                    # 僅顯示指定目錄的總使用量
gdu -nt 10 /                          # 顯示前 10 個最大文件
gdu / > file                          # 將統計信息寫入文件,不啟動交互模式

gdu -o- / | gzip -c >report.json.gz   # 將所有信息寫入 JSON 文件以供以後分析
zcat report.json.gz | gdu -f-         # 從文件中讀取分析

GOGC=10 gdu -g --use-storage /        # 使用持久化鍵值存儲保存分析數據
gdu -r /                              # 從持久化鍵值存儲中讀取分析數據

使用 Hugo 建立
主題 StackJimmy 設計