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

hyp*_*man 6 linux disk-usage

我无法确定到底是什么文件占用了我的磁盘。

首先我使用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
Run Code Online (Sandbox Code Playgroud)

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

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

我需要知道什么正在吞噬79%目录/

我该如何解决这个问题?

Htt*_*tqm 10

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

du -m . --max-depth=1 | sort -nr | head -20
Run Code Online (Sandbox Code Playgroud)

要使用这个:

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

  • 对于这个问题的场景,我会考虑将 -x 添加到 `du` 中。这可以防止它跨越文件系统边界,因此不包括机器上的其他文件系统,如 /home,或任何 nfs 挂载/挂载的 ISO 文件等,所有这些都可能是 OP 想要排除的,因为他们正试图找到一些东西特定文件系统上的空间。 (6认同)
  • 这是一个有趣的选项选择。就个人而言,我宁愿`du -sh */ | 排序-nh`。`du -m` 会将所有内容四舍五入到至少 1 兆字节。`du -h` 将显示带有后缀的尺寸,如 `K`、`M` 和 `G`。`sort -h` 会考虑这些后缀。选择 `du -s */` 而不是 `du --max-depth=1 .` 可以优化全局。使用 `head` 会丢弃可能需要工作的结果,所以我认为最好让所有内容都打印出来,以防尺寸均匀分布。避免使用 `sort -r` 会使更大的结果更接近新的命令行提示符。 (6认同)

Eri*_*nil 10

ncdu是解决此类问题的绝佳工具。这是相应的

在此处输入图片说明 在此处输入图片说明

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

ncdu -x /home
Run Code Online (Sandbox Code Playgroud)

它是DaisyDiskBaobabWinDirStat等价的命令行。

扫描大文件夹可能需要很长时间,但一旦完成,找到最大的文件应该会非常快。


Phi*_*ing 8

如果您对文件的实际大小有所了解,您可以将find文件大于特定大小。

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

find /mounted/drive -size +10M
Run Code Online (Sandbox Code Playgroud)

或者

find /mounted/drive -size +10M -exec ls -lh {} +
Run Code Online (Sandbox Code Playgroud)

如果问题不是一个大文件而是一大堆小文件,那么 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
Run Code Online (Sandbox Code Playgroud)

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


dr_*_*dr_ 5

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

du -a / | sort -n -r | head 
Run Code Online (Sandbox Code Playgroud)