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

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

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

我的磁盘空间快用完了,需要清理一下,看看是什么占用了我的所有空间。通常我会使用磁盘使用工具,如ncduBaobab 或 Filelight。但是它们将符号链接视为基本为空,并且只将其指向的文件计为使用任何空间。这意味着当我使用 git-annex 时,它显示主目录中没有使用空间,而 .git/annex 目录中使用了大量空间。这没有帮助。

有没有基于 Linux 的磁盘使用程序(图形化或 ncurses)?apt-get 安装会更容易,能够(通过选项或不通过选项)计算符号链接占用的原始文件占用的空间?许多程序都有针对硬链接的不同行为的选项,因此有些程序应该有

(我知道将符号链接计为使用空格存在缺陷,例如将空格数两次、符号链接损坏等。但这对我的目的来说没问题)

答案1

GNU du 具有 --dereference 选项,可在计算磁盘使用量时取消引用符号链接。但是,du 拒绝对同一空间进行两次计数,这可能会破坏您的情况:

% 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 可以满足您的要求。

答案2

目前,git-annex 针对此问题有自己的解决方案。你可以使用:

git annex info --fast *

...直接从 git-annex 的文件获取实际磁盘使用情况(及更多信息)。它还可以对远程存储库进行操作,这非常有用:

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

... 将为您提供以下数据量不是例如在当前存储库中。

我也用过北卡罗莱纳大学有了这个小补丁并取得良好的效果。

讨论此问题的上游论坛是附件上是否等同于“du”?还有更多建议,例如du -L加杜尺寸这里的其他答案中提到过。

答案3

git-annex 有一个列表相关软件包括一些 git-annex 感知磁盘使用情况的工具 -加杜尺寸

答案4

是否有任何(图形化或 ncurses)基于 Linux 的磁盘使用程序(apt-get 安装会更容易,能够(通过选项或不通过选项)将符号链接计为使用原始文件占用的空间?

总结: du -akL mydirectory | xdiskusage -aq

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

我也用git 附件并有同样的需求。

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

GNUdu与大多数 GNU 工具一样有一个有很多选择, 包括:

'-L' '--取消引用'

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

以交互方式探索和放大磁盘使用情况树的参考工具:xdiskusage

此外,还有一款出色的轻量级磁盘使用情况表示工具,名为磁盘管理

您可以完全以图形方式使用它:选择文件夹,或选择完整文件系统以包含可用空间表示。您可以单击、使用箭头和 Enter 键放大树显示,隐藏一些子树。它非常实用、简单、快速,即使在远程显示上也是如此。

将它们结合起来并获利!

它有一个很好的特性,您还可以将类似于的 du 调用的结果提供给它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。)

相关内容