如何确定 Fedora 18 中的大文件占用空间

如何确定 Fedora 18 中的大文件占用空间

我无法准确确定哪个文件正在占用我的磁盘。

首先,我使用df命令列出我的目录:

devtmpfs                 16438304        0  16438304   0% /dev
tmpfs                    16449868        0  16449868   0% /dev/shm
tmpfs                    16449868  1637676  14812192  10% /run
tmpfs                    16449868        0  16449868   0% /sys/fs/cgroup
/dev/mapper/fedora-root  51475068 38443612  10393632  79% /
tmpfs                    16449868      384  16449484   1% /tmp
/dev/sda3                  487652    66874    391082  15% /boot
/dev/mapper/fedora-home 889839636 44677452 799937840   6% /home

然后我就跑了du -h / | grep '[0-9\,]\+G'

问题是我得到了包括其他目录在内的所有内容,因此我需要专门查找,/dev/mapper/fedora-root 但当我尝试时却du -h /dev/mapper/fedora-root | grep '[0-9\,]\+G'没有得到任何结果。

我需要知道79%目录被什么占用了/

我该如何解决这个问题?

答案1

在这种情况下我的魔法命令是:

du -m . --max-depth=1 | sort -nr | head -20

要使用这个:

  1. cd进入包含占用空间的文件的顶级目录。/如果您不知道的话,这可能是;-)
  2. 跑步du -m . --max-depth=1 | sort -nr | head -20。这将列出当前目录的 20 个最大子目录,按大小递减排序。
  3. cd进入最大的目录并重复命令,du ...直到找到大文件

答案2

ncdu是解决此类问题的一个很好的工具。这是对应的包裹

在此输入图像描述 在此输入图像描述

-x如果您只想保留在一个文件系统上而不遵循符号链接,则可以使用。例如,作为 root:

ncdu -x /home

它的命令行相当于雏菊盘,猴面包树或者WinDirStat

扫描大文件夹可能需要很长时间,但一旦完成,就可以很快找到最大的文件。

答案3

如果您对文件的实际大小有感觉,您可以find大于特定大小的文件。

例如,要查找大于 10 MiB 的文件:

find /mounted/drive -size +10M

或者

find /mounted/drive -size +10M -exec ls -lh {} +

如果问题不是一个大文件而是一大堆小文件的集合,Httqm 的建议也很好。那就是使用du显示目录总数。限制 with--max-depth对于大型目录树非常有用:

du -m some/directory --max-depth=1 | sort -nr | head -20
du some/directory --max-depth=1 | sort -n | tail -21

将把单个目录分解为子目录,其中第二个目录也为您提供所列出的目录的总数。

答案4

使用此命令找出最大的目录:

du -a / | sort -n -r | head 

相关内容