目录统计命令行界面?

7
Windirstat/Kdirstat/Disk Inventory X在文件管理中表现出色,革命性的作用不言自明。为什么没有纯文本的命令行等效工具呢?我需要它来进行文件服务器的SSH管理。
我们拥有所有的基础构件:du、tree等等。
有吗?为什么没有?可以有人写一个吗?:)
编辑:du几乎可以满足我的需求。我想要的是按大小(而不是完整路径)对每个子目录进行排序,并缩进以便更容易避免重复计数。du会给我这个:
cd a
du . -h

1G  b
2G  c
1K  c/d
1K  c/e
2G  c/f

很明显c和c/f是有重叠的。我想要的是:

cd a
dir_stats .

1G  b
2G  c
    |
    +---- 2G  f
    |
    +---- 1K  d
    |
    +---- 1K  e

清楚地表明,f中的2G是由于c中的2G导致的。我可以更容易地找到与c无关的所有信息(即仅通过扫描第一列)。


你能否更详细地说明你的问题?看起来du可以完成你需要执行的所有功能。Kdirstat及其类似工具实际上是基于du功能开发的,只是提供了图形界面。你是在寻找调整报告信息的方法吗? - bubba
我已经尝试澄清。希望这有些意义。 - Sridhar Sarnobat
2
实际上这是一个重复的问题:http://unix.stackexchange.com/questions/45828/print-size-of-directory-content-with-tree-command-in-tree-1-5 - Sridhar Sarnobat
三年过去了,我实际上觉得这不是必要的(但感谢您的答案)。我现在信仰地使用 du ,并且可以看出它为什么被设计成这样。 - Sridhar Sarnobat
4个回答

13

我建议使用ncdu,它代表NCurses磁盘使用情况。基本上,它是du的可折叠版本,具有基本的命令行用户界面。

值得注意的一件事是,它在处理大量数据时比du慢一些,因此我建议在screen中运行它或使用命令行选项先扫描目录,然后查看结果。请注意q选项,它将刷新速率从1/10秒降低到2秒,推荐用于SSH连接。

查看根目录总使用空间:

ncdu -xq /

生成结果文件并稍后查看:

ncdu -1xqo- / | gzip > export.gz
# ...some time later:
zcat export.gz | ncdu -f-

听起来很有趣,我会去看看。 - Sridhar Sarnobat
哎呀,一个非交互式命令行工具。我从来不喜欢这些(和我不喜欢松树的原因一样)。能否将执行脚本化,将输出转储到终端并返回控制到提示符? - Sridhar Sarnobat
2
您可以使用 ncdu -1xqo- / 将输出发送到终端,或者使用 ncdu -1xqo file.json 将其写入文件。输出格式为 JSON 并在此处有描述 (http://dev.yorhel.nl/ncdu/jsonfmt),因此您可以轻松编写自己的输出格式化程序。 - onik

4
你可以使用KDirStat(或新的QDirStat)与随附其中的perl脚本一起收集服务器上的数据,然后将该文件复制到桌面计算机并在KDirStat / QDirStat中查看。
另请参见。

https://github.com/shundhammer/qdirstat/tree/master/scripts

或者

https://github.com/shundhammer/kdirstat/blob/master/kdirstat/kdirstat-cache-writer

脚本似乎没有包含在KDE 4端口K4DirStat中,但它仍然可以读写相同的缓存文件。-- HuHa(原始KDirStat的作者Stefan Hundhammer)

输出的样子是什么?您能发布一个样本吗? - Sridhar Sarnobat
2
“文件”菜单 -> QDirStat / KDirStat / K4DirStat中的“读取缓存文件”将会给您展示这个屏幕(如果您对树状图不感兴趣,可以关闭底部的树状图显示):(https://github.com/shundhammer/qdirstat/blob/master/screenshots/QDirStat-main-win.png - HuHa
1
缓存文件格式本身有很好的文档记录:https://github.com/shundhammer/qdirstat/blob/master/doc/cache-file-format.txt; 示例(未压缩,短格式): http://paste.opensuse.org/85093270; 长格式示例(使用选项-l): http://paste.opensuse.org/35861400缓存文件包含路径、文件名、自身大小、修改时间;其他字段在加载文件时计算。 - HuHa
1
详细说明现已在此处提供: https://github.com/shundhammer/qdirstat/blob/master/doc/QDirStat-for-Servers.md - HuHa

1

0

不要试图使用ASCII艺术可视化来进行磁盘空间管理。Du在所有方面都遵循Unix的优雅哲学,因此为您提供免费的排序等功能。

熟悉du,您将拥有更多的能力,在远程查找磁盘占用过大的文件时更加得心应手。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接