我正在使用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工具一样,GNU du有很多选项 ,其中包括:
'-L''–deference'
取消引用符号链接(显示链接指向的文件或目录使用的磁盘空间,而不是链接使用的空间)。
此外,还有一个名为xdiskusage的优秀的轻量级磁盘使用表示工具。
您可以完全graphics化地使用它:select文件夹,或者select完整的文件系统来包含可用空间表示。 您可以单击,使用箭头和Enter键放大树形显示,隐藏一些子树。 这是非常实用,简单,快速,即使在远程显示。
它有一个很好的属性,你也可以把它作为du -ak调用的结果。
所以,你可以这样做:
du -akL mydirectory | xdiskusage
我恰好总是使用这个变体,其中-a表示显示所有文件(不仅仅是目录),而-q通过删除进度滑块使得所有的事情变得更快:
du -akL mydirectory | xdiskusage -aq
来自http://xdiskusage.sourceforge.net/的图片来自Bill Spitzak。
apt-get可安装
在Debian和包括Ubuntu在内的衍生产品上:
sudo apt-get install coreutils xdiskusage
(你当然已经安装了coreutils。)