
如果我運行sudo df -h
命令,我會得到以下輸出:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 12G 9.5G 1.1G 91% /
/dev/sda4 3.8G 1.5G 2.1G 41% /home
/dev/sda1 99M 75M 20M 80% /boot
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/sdc1 51G 2.6G 46G 6% /u000
但是,我如何知道 下的目錄列表/sda2
?例如,如果我運行ls /
命令,我會得到根目錄下的所有目錄。
$ ls /
bin cdunix dev etc lib lost+found misc mnt1 mtp net PatchInstall root selinux sys tmp usr
boot cron_4058 esm home lib64 media mnt mnt2 NB_DIR opt proc sbin srv tftpboot u000 var
- 但是,是否有任何命令或方法可以讓我也列出他們的檔案系統?
- 因為, 上的剩餘空間非常少
/dev/sda2/
。如何從此分區騰出更多空間?
答案1
如果您正在尋找正在耗盡空間且不在不同分割區上的目錄,那麼您需要du -hx --max-depth=1 /
.告訴-x
它不要進入其他檔案系統(分區)上的目錄。要求只為每個目錄而不是每個子目錄--max-depth=1
列印一行(列出該目錄和所有子目錄的總空間) 。/
然後,您可以開始深入查看較大的子目錄,以尋找佔用空間的內容。
答案2
如果我正確地閱讀這個問題,有一個名為 的程式tree
。這將以樹狀結構列出所有目錄。安裝後,您可以執行以下操作:
tree -x
僅保留-x
在目前檔案系統上。阿拉找到-xdev。
更新:我已經嘗試過了tree -P /dev/xvda
,它似乎顯示了該檔案系統下的目錄。該-P
命令代表模式。因此,要回答您的問題,您應該能夠使用它來列出檔案系統中的目錄。
若要列出目錄中的第一層/
,請嘗試指令:
tree -LP 1 /dev/xvda
其中L
level 是目錄樹的最大顯示深度。
請參閱手冊頁這裡
答案3
但是,我如何知道 /sda2 下的目錄清單?
/dev/sda2 下方沒有目錄,/dev/sda2 是磁碟上的分割區(sda 是磁碟,2 是分割區號碼)。
但是,是否有任何命令或方法可以讓我也列出他們的檔案系統?
由於您只安裝了一個檔案系統,因此它們都位於 /fs 上。
查看已掛載檔案系統清單的更好方法是使用 mount:
$ sudo mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=2018106,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=3232436k,mode=755)
/dev/sda5 on / type ext4 (rw,noatime,errors=remount-ro,data=ordered)
若要查看資料夾使用的儲存量,您可以使用以下du
命令,例如:
~/tmp$ du -sh
752K .
du
有很多使用完整的選項。追蹤大型資料夾時,一個非常好的方法是--max-depth=1
限制輸出的深度:
du -h --max-depth=1 /
7,9M /sbin
702M /lib
如果您在 / 上運行而不是 root,您將收到很多錯誤訊息。
du
可以幫助您找出要刪除哪些檔案以騰出更多空間。如果無法刪除任何文件,則需要調整分割區大小或將一些資料移至其他分割區。