如何在不安装任何东西的情况下找到占用所有磁盘空间的大文件?

如何在不安装任何东西的情况下找到占用所有磁盘空间的大文件?

所以,问题是,如果您的系统完全被一个巨大的文件阻塞,并且您知道没有任何可以删除的内容,那么所有那些展示管理文件系统的闪亮工具的教程都没有那么有用。

碰巧这就是我的情况:我有一个开发虚拟机,我完全用测试数据填充了它,但我不确定它们在哪里(抽象层太多,我不只是简单地写在磁盘上)。我知道我可以删除的东西并不多,只有源代码和基本操作系统。许多命令不起作用,因为没有任何磁盘空间。

如何找到该测试文件的最终位置并将其删除?

答案1

您应该尝试:

find /directory -type f -size +10G

10G适合自己喜欢的大小

答案2

检查磁盘空间使用情况的另一种方法是使用du.
使用du,您可以使用以下标志来细分大部分驱动器使用情况;-s是总结(例如,仅显示目标的总数。) -h是为了人类可读(例如 100K 或 212M 或 89G。) -c是在最后获得使用情况的总计。 -x是将搜索保持在一个文件系统上(例如,在操作系统驱动器上,如果您在搜索中的某个位置安装了文件系统,就像我运行此命令时在 /mnt 下所做的那样。)

所以,这是一个例子:

 ~ # du -shcx /*
11M     /bin
4.0K    /boot
0       /dev
24M     /etc
212G    /home
2.6G    /lib
18M     /lib64
16K     /lost+found
4.0K    /media
2.6G    /mnt
188G    /opt
du: cannot access '/proc/24898/task/24898/fd/4': No such file or directory
du: cannot access '/proc/24898/task/24898/fdinfo/4': No such file or directory
du: cannot access '/proc/24898/fd/4': No such file or directory
du: cannot access '/proc/24898/fdinfo/4': No such file or directory
0       /proc
15G     /root
2.4M    /run
16M     /sbin
0       /sys
1.1M    /tmp
131G    /usr
21G     /var
570G    total

而且,在您发现使用率最高的地方,只需深入到该目录的下一级并继续下去,直到找到使用所有驱动器空间的文件所在的位置。

希望有帮助。

答案3

您可以在安装了或的du另一个系统上获取磁盘使用情况并对其进行分析:xduxdiskusage

ssh user@vm 'du -xak / | gzip -1' | gunzip | xdiskusage

假设您的文件/目录名称中没有包含换行符。如果可能有:

ssh user@vm 'du -0xak / | gzip -1' | gunzip | tr '\0\n' '\n?' | xdiskusage

?(换行符将按照中的方式呈现xdiskusage)。

请注意,磁盘空间可能被已删除但仍在被某些进程使用的文件使用。看查找并删除打开但已被删除的大文件对于那些。

相关内容