Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

結合 du 與 awk 篩選超大目錄:自動識別 MB/GB 單位並排序輸出

編輯:關於 Linux

業務場景

/home/pms 佔用空間過大,需列出超過 200MB 的子目錄及大小。

腳本實作

du -h --max-depth=10 /home/pms/* | awk '
{
  if ($1 ~ /M/) {split($1, arr, "M")}
  if (($1 ~ /G/) || ($1 ~ /M/ && arr[1] > 200)) {
    printf "%-10s %s\n", $1, $2
  }
}' | sort -n -r

關鍵邏輯

  • du -h:人類可讀單位(K/M/G)。
  • awk 判斷單位為 M 時切割數值比較;單位為 G 直接輸出。
  • sort -nr:依大小遞減排序。

執行結果範例

$ du -h --max-depth=10 /home/pms/*
0 /home/pms/addressCountMap
12K /home/pms/bigDataEngine/conf
1.7M /home/pms/bigDataEngine/analysis/warning
33M /home/pms/bigDataEngine/analysis/log
...

結語

du + awk 靈活解析人類可讀大小,自動過濾超大目錄,配合 sort 快速定位清理目標。

Copyright © Windows教程網 All Rights Reserved