Disk-Usage

如何找出在“/”上浪費空間的內容?

  • July 24, 2014

我可以找出什麼是浪費空間:

du -sm * | sort +0nr | head -30

但是如果“/”被 100% 填充,並且有很多掛載點,例如:/foo、/foo2 等,我怎樣才能在例如:“/”中獲得不是掛載點的目錄大小列表?(遞歸不是掛載點?)

更新:這不起作用:

cd /; du -sxm * 2>/dev/null | sort +0nr | head -30

因為它列出了安裝在 ex.: “/FOO” 中的目錄(在 AIX6.1 和 SLES 9.4 下嘗試過)

更新:

du -xm / | sort +0nr | head -30

這在 AIX 上工作,現在呢?:D

man du本身提到:

-x, --one-file-system
             skip directories on different file systems

所以有些東西

du -xm * | sort +0nr | head -30

至少如果你du從 GNU coreutils 使用(我的是 8.20 版),會成功的。

不確定這是否適用於 AIX(在我發布答案後才注意到標籤,抱歉)。

如果某些東西在浪費空間而您找不到它,則它可能隱藏在其他掛載點之下。例如,您有一個/mnt/backup/並在未掛載時進行了備份,備份文件將結束於/,但只要/mnt/backup/稍後掛載,就不再可見。

--one-file-system開關也無濟於事。你必須做一個乾淨通暢的坐騎。

mkdir /mnt/something
mount /dev/yourroot /mnt/something

然後使用、或任何您喜歡的工具檢查/mnt/something/文件。du``xdiskusage

如果這仍然沒有產生任何結果,請檢查根保留的瘋狂值(用於 ext*,tune2fs),或檢查一般文件系統(fsck),因為某些文件系統缺陷可能會導致已用/可用空間計算錯誤。

引用自:https://unix.stackexchange.com/questions/83037