如果我运行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
可以帮助您找出要删除哪些文件以腾出更多空间。如果无法删除任何文件,则需要调整分区大小或将一些数据移动到其他分区。