磁碟大小管理
我正在使用 Fedora 16。我的 /dev/sda2 安裝在 / (root) 上,類似 50G 的東西被填滿了 100%:
[foampile@~ 13:13:39]> df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 51606140 49025452 0 100% / devtmpfs 2988452 0 2988452 0% /dev tmpfs 2999424 96 2999328 1% /dev/shm /dev/sda2 51606140 49025452 0 100% / tmpfs 2999424 51992 2947432 2% /run tmpfs 2999424 0 2999424 0% /sys/fs/cgroup tmpfs 2999424 0 2999424 0% /media /dev/sda1 99150 79569 14461 85% /boot /dev/sda5 247972844 10782056 224594412 5% /home
Q1 : 有沒有一個命令,或者 ls 的選項,它會遞歸地列出一個目錄下的所有文件,並按大小降序排列?我想看看哪些文件/目錄佔用了設備。
Q2 : 我的 /home 比較沒用。有沒有辦法重新分區磁碟並將一些磁碟空間從 /dev/sda5 (/home) 切換到 /dev/sda2?
謝謝
Q1。嘗試類似的東西
sudo du -a -m -x | sort -k1n -r | head -n40
。to的-a
標誌du
是遞歸的。該-m
標誌以 MB 為單位顯示大小。停留在-x
單個文件系統上。這將列出文件和目錄,並且只列出最大的 40 個(因為-n40
選項 tohead
)。某些du
實現可以-t SIZE
選擇僅顯示大小超過 SIZE 的條目。要僅列出文件,您可以嘗試類似
find / -xdev -type f -size +1M -ls
:/
這將僅列出大小超過 1 MB的文件系統上的文件。Q2。幾乎可以確定。但是您應該單獨詢問這個問題,或者在“linux”和“repartition”等關鍵字上搜尋(此處或其他地方),因為我經常看到它被討論過。以下是本站之前的一些問答:
rootfs 的 50GB 是巨大的,最好檢查文件系統為什麼會被填滿,而不是盲目地擴展它。如果您只是擴展根文件系統,它很可能會在短時間內再次填滿。我希望 /var、/var/log 或 /tmp 被填充。
以我的經驗,這通常是由大量相對較小(ish)的文件引起的,因此最好以手動和結構化的方式進行。下面的方法可以讓您找到單個大文件或包含大量小文件的目錄。
sudo -i cd / du -sxh * | sort -h
du
列出磁碟使用情況
-h
人類可讀格式的列印尺寸(例如,1K 234M 2G)-s
只顯示每個參數的總數-x
用於跳過不同文件系統上的目錄
sort -h
使最大的目錄最後出現。現在調查最後(幾個)目錄:
cd the_large_diretory
並重複
du -sxh * | sort -h
直到找到包含大文件的目錄。最後,您可以使用以下命令檢查目錄的內容:
cd the_large_directory ls -hlrS
ls
列出目錄的內容
-h
以“人類可讀的形式”顯示文件大小-l
顯示文件詳細資訊-r
反轉排序(最大文件在後)-S
按文件大小排序筆記
- 如果任一命令
du
或sort
您的系統不支持該-h
標誌,只需使用du -sxk * | sort -n
. 輸出類似,只是由於數字長而難以閱讀。- 如果
ls
您的系統不支持該-h
標誌,請跳過它,它不是必需的,但可以提高可讀性。- 如果
ls
您的系統不支持該-S
標誌,請將輸出通過管道傳輸到sort -nk5