如何知道檔案系統下的目錄清單?

如何知道檔案系統下的目錄清單?

如果我運行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

其中Llevel 是目錄樹的最大顯示深度。

請參閱手冊頁這裡

答案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可以幫助您找出要刪除哪些檔案以騰出更多空間。如果無法刪除任何文件,則需要調整分割區大小或將一些資料移至其他分割區。

相關內容