像符号链接那样工作的Linux磁盘使用分析器是真实的文件

我正在使用git-annex,DVCS git的扩展,它是为处理大文件而devise的。 它大量使用符号链接。 实际的大文件被移动到.git/annex目录,并且原始文件被符号链接到那里。

我的磁盘空间不足,需要清理,看看我的空间有什么用处。 通常我会使用像ncdu ,Baobab或Filelight这样的磁盘使用工具。 但是,他们将符号链接视为基本上为空,并且只将其指向的文件计数为使用任何空格。 这意味着当我使用git-annex时,主目录中没有使用空间,在.git / annex目录中使用了大量的空间。 这没有帮助。

是否有任何(graphics或ncurses)基于Linux的磁盘使用程序(apt-get installable会很容易(通过选项或不能)计算一个符号链接作为使用原始文件使用空间?许多人有select对于硬链接的不同行为,所以有一些应该是有道理的

(我知道计数符号链接,因为使用空间有缺陷,如计算两次空间空间,符号链接损坏等,但这对我的目的是好的)

GNU du有–dereference选项,它在计算磁盘使用率时取消引用符号链接。 然而,杜拒绝两次计算相同的空间,这可能是在你的情况下,

 % mkdir foo bar baz % dd if=/dev/zero of=foo/test bs=1024 count=10000 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 0.0176239 s, 581 MB/s % (cd bar; ln -s ../foo/test) % (cd baz; ln -s ../foo/test) % du -hc bar baz 4.0K bar 4.0K baz 8.0K total % du -hc --dereference bar baz 9.8M bar 4.0K baz 9.8M total 

如果你没有多个符号链接到同一个目标,但是,我认为–dereference做你想要的。

git-annex有一个相关的软件列表,包括一些git-annex感知的磁盘使用工具 – gadu和大小 。

现在,git-annex对这个问题有自己的解决scheme。 您可以使用:

 git annex info --fast * 

…从git-annex直接获取文件的实际磁盘使用情况(以及更多)。 它也可以在远程仓库上运行,这非常有用:

 git annex info --fast --not --in here . 

例如,会为您提供不在当前存储库中的数据量。

我也用这个小补丁 ncdu ,效果很好。

讨论这个问题的上游论坛是否等同于附件? 并有更多的build议,如du -L , gadu和大小 ,在这里的其他答案中提到。

是否有任何(graphics或ncurses)基于Linux的磁盘使用程序(apt-get installable会很容易(通过选项或不能)计算一个符号链接使用原始文件用尽的空间?

TL; DR: du -akL mydirectory | xdiskusage -aq du -akL mydirectory | xdiskusage -aq

长答案:结合两个强大的组合程序

我也使用git-annex并具有相同的需求。

参考工具获取磁盘使用情况:GNU du

像大多数GNU工具一样,GNU du有很多选项 ,其中包括:

'-L''–deference'

取消引用符号链接(显示链接指向的文件或目录使用的磁盘空间,而不是链接使用的空间)。

参考工具交互式地探索和放大一个磁盘使用树:xdiskusage

此外,还有一个名为xdiskusage的优秀的轻量级磁盘使用表示工具。

您可以完全graphics化地使用它:select文件夹,或者select完整的文件系统来包含可用空间表示。 您可以单击,使用箭头和Enter键放大树形显示,隐藏一些子树。 这是非常实用,简单,快速,即使在远程显示。

结合他们和利润!

它有一个很好的属性,你也可以把它作为du -ak调用的结果。

所以,你可以这样做:

 du -akL mydirectory | xdiskusage 

我恰好总是使用这个变体,其中-a表示显示所有文件(不仅仅是目录),而-q通过删除进度滑块使得所有的事情变得更快:

 du -akL mydirectory | xdiskusage -aq 

来自http://xdiskusage.sourceforge.net/的图片来自Bill Spitzak。

xdiskusage显示示例

apt-get?

apt-get可安装

在Debian和包括Ubuntu在内的衍生产品上:

 sudo apt-get install coreutils xdiskusage 

(你当然已经安装了coreutils。)