类似于符号链接的 Linux 磁盘使用分析器是真实文件

Ama*_*rus 6 linux filesystems hard-drive disk-space-utilization symbolic-link

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

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

是否有任何基于(图形或 ncurses)的 linux 磁盘使用程序(apt-get installable 很容易,它能够(通过选项或不通过选项)将符号链接计算为用完原始文件用完的空间?许多人有选项对于硬链接的不同行为,所以有些人应该h

(我知道计算符号链接是因为使用空间有缺陷,比如计算空间空间两次、损坏的符号链接等。但这对我的目的来说没问题)

小智 6

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
Run Code Online (Sandbox Code Playgroud)

但是,如果您没有指向同一目标的多个符号链接,我认为 --dereference 可以满足您的需求。