如何了解正在占用磁盘空间的内容?


86

我正在寻找WinDirStat的Linux替代。我想知道什么占用了我的硬盘驱动器空间。

首选在控制台上运行并且不需要UI的程序。


ncdu是我的首选答案,但我看到第一个答案表示您遇到的问题不在您的问题中。
SDsolar

Answers:


74

根据您的问题安装ncdu我的建议是使用dusort对在一起。

例如:

  • du /home | sort -rn (将搜索/ home下的所有文件/目录,并按最大到最小的顺序对它们进行排序。
  • du -h /home | sort -rh(相同,但以MB / KB / etc显示)-请注意,这需要coreutils 7.5或更高版本(sort --version进行检查)

您可以将/ home替换为您选择的任何目录。


太好了,谢谢您的帮助。我的coreutils是5.97-这就是为什么du -h的排序顺序不正确吗?
ripper234

是的,您必须du /home | sort -rn使用coreutils 5.97进行安装,或者对perl等使用一些“魔术”,如ServerFault(serverfault.com/q/62411/60012)所示
NJ 2010年

2
OTOH如果子目录较大,则其膨胀将在结果顶部显示多个时间(针对该目录和每个父目录),恕我直言,这会分散真实膨胀。使用下面建议的“ ncdu”可能会有所帮助,我将尝试一下。=)
lapo 2011年

2
我发现“查找”的-size选项也很有用,因为它使您可以找到特定目录下的所有文件。至少对于GNU查找,您可以执行以下操作:“ find。-size + 100M”在当前目录下查找大于100M的文件。
gabe。

89

如果需要命令行工具,我更喜欢ncdu,它是ncurses的版本du。它扫描磁盘(或给定的文件夹),然后显示顶级空间使用情况;您可以选择一个给定目录以获取该目录的相应摘要,然后返回而无需重新分析:

ncdu的屏幕截图


如果您可以使用GUI程序,Filelight是我发现的最接近WinDirStat的东西;它显示了空间消耗的图形视图:

Filelight的屏幕截图

像一样ncdu,Filelight允许您选择一个给定目录以获取该目录的细目分类


4
您不认为QDirStat更接近WinDirStat吗?
Janus Troelsen

39

您应该知道WinDirStat实际上是KDirStat的端口,它是Linux / KDE程序。因此,如果您正在寻找WinDirStat的Linux替代产品,那么您当然应该看看KDirStat。它已经打包在大多数发行版中,只需安装即可。

另一个替代方法是已经被Michael Mrozek引用的FileLight和Konqueror插件fsview(您可以从命令行独立运行它)。


16
哇,我从没意识到(我猜名字里的“赢”本来应该是赠品)。一位同事问我是否有WinSCP的Linux版本; 我死在里面
Michael Mrozek

3
@上一个评论。哎哟。哎哟
大卫·奥尼尔

2
请注意,如果通过软件中心进行安装,它将被称为Ubuntu的K4DirStat
y3sh,

sudo apt-get install k4dirstat
y3sh

34

另一个GUI程序是:baobab

替代文字


实际上,如果我使用的是Ubuntu,那么我不会费心寻找任何其他选择。baobap够了。
phunehehe

它还显示了文件数量,有时需要检查文件数量以及磁盘空间
golimar


7

我更喜欢以下命令行:

$  du -s -m -x * | sort -n

对其进行分解,du显示磁盘使用情况;-s表示打印每个参数的总和(当前目录中的每个项目),-m表示以兆字节为单位显示大小。这使得分类工作变得更加容易。sort并不真正理解-h输出。在-x忽略其它文件系统; 尝试在中查找太空猪时/var,这很有用,并且/var/spool/foo是一个不同的文件系统。


最佳答案是否已使用du
muru 2014年

是的,但是我系统上的du / home返回数万个文件;我很少在乎这些文件中最大的100个。我通常想知道哪些子目录占用最多的空间。
P乔斯林2014年

我指定了--max-depth = 2而不是-s,因为我想从根目录下移一个目录,但是您的回答指出了我的方向。谢谢!
John Eisbrener

6

/www.vrplumber.com/programming/runsnakerun/中还有一个很酷的python脚本

bzr branch lp:~mcfletch/squaremap/trunk squaremap

它并不是功能最丰富的工具,但是它是通过单个python脚本运行的,因此非常易于移植。

替代文字




3

xdiskusage非常灵活,轻巧,具有非常精简的依赖关系,易于编译。

它从左到右显示一棵树,您可以使用鼠标或箭头键进行导航,放大(单击或输入),隐藏某些部分以获得更好的视图,使用键或上下文菜单更改排序顺序,颜色数量等。

它的重量轻到可以在远程SSH链接上以良好的性能使用它。在这种情况下,我建议使用-q命令行选项来禁用在文件移动时出现的进度条。

您也可以选择du预先运行自己。

一种情况是远程文件系统已满或接近满。在该系统上运行du -ak | gzip >log_of_disk_usage.txt.gz,获取输出并在gzip -dc log_of_disk_usage.txt.gz | xdiskusage -aq本地运行。
甚至ssh myremotesystem "cd /filesystem_near_full/ ; du -ak | gzip" > log_of_disk_usage.txt.gz可以将结果存储在本地,而无需远程编写任何内容。

xdiskusage 不提供修改文件系统的功能(例如移至回收站等),但是您可以将路径复制到剪贴板并将其粘贴到文件管理器,终端等中。

xdiskusage屏幕截图


2

我最近使用了命令行工具(CLI,而不是TUI):http: //zevv.nl/play/code/philesight/

它会生成一个PNG文件,您可以在其他地方查看。它还具有一个CGI脚本。

您很可能不限于本地工作站上的文本模式,因此应该适当。


1

在使用du use找到目录后,还要查看按大小排序的特定目录中的文件:

ls -lrSh

1

Duc(https://duc.zevv.nl/)将在命令行中运行。

可以在Debian 9中像这样安装和使用它:

# apt install duc
# duc index /
# duc graph /

这样,您将duc.png在当前目录中获得一个名为的文件。现在,您可以将此文件复制到另一台支持GUI的计算机,其外观如下所示: duc.png

注意:Duc是@OCTAGRAM在其答案中提到的工具的替代品。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.