大家对 du 命令应该都不陌生,它可以在类 Unix 系统中对文件和目录的空间使用情况进行计算和汇总。如果你也经常需要使用 du 命令,你会对以下内容感兴趣的。我发现了五个可以替代原有的 du 命令的更好的工具。当然,如果后续有更多更好的选择,我会继续列出来。如果你有其它推荐,也欢迎在评论中留言。
ncdu
ncdu 作为普通 du 的替代品,这在 Linux 社区中已经很流行了。ncdu 正是基于开发者们对 du 的性能不满意而被开发出来的。ncdu 是一个使用 C 语言和 ncurses 接口开发的简易快速的磁盘用量分析器,可以用来查看目录或文件在本地或远程系统上占用磁盘空间的情况。如果你有兴趣查看关于 ncdu 的详细介绍,可以浏览《如何在 Linux 上使用 ncdu 查看磁盘占用量》这一篇文章。
tin-summer
tin-summer 是使用 Rust 语言编写的自由开源工具,它可以用于查找占用磁盘空间的文件,它也是 du 命令的另一个替代品。由于使用了多线程,因此 tin-summer 在计算大目录的大小时会比 du 命令快得多。tin-summer 与 du 命令之间的区别是前者读取文件的大小,而后者则读取磁盘使用情况。
tin-summer 的开发者认为它可以替代 du ,因为它具有以下优势:
- 在大目录的操作速度上比
du 更快;
- 在显示结果上默认采用易读格式;
- 可以使用正则表达式排除文件或目录;
- 可以对输出进行排序和着色处理;
- 可扩展,等等。
安装 tin-summer
要安装 tin-summer,只需要在终端中执行以下命令:
$ curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer
你也可以使用 cargo 软件包管理器安装 tin-summer,但你需要在系统上先安装 Rust。在 Rust 已经安装好的情况下,执行以下命令:
$ cargo install tin-summer
如果上面提到的这两种方法都不能成功安装 tin-summer,还可以从它的软件发布页下载最新版本的二进制文件编译,进行手动安装。
用法
(LCTT 译注:tin-summer 的命令名为 sn )
如果需要查看当前工作目录的文件大小,可以执行以下命令:
$ sn f 749 MB ./.rustup/toolchains 749 MB ./.rustup 147 MB ./.cargo/bin 147 MB ./.cargo 900 MB .
不需要进行额外声明,它也是默认以易读的格式向用户展示数据。在使用 du 命令的时候,则必须加上额外的 -h 参数才能得到同样的效果。
只需要按以下的形式执行命令,就可以查看某个特定目录的文件大小。
$ sn f <path-to-the-directory>
还可以对输出结果进行排序,例如下面的命令可以输出指定目录中最大的 5 个文件或目录:
$ sn sort /home/sk/ -n5 749 MB /home/sk/.rustup 749 MB /home/sk/.rustup/toolchains 147 MB /home/sk/.cargo 147 MB /home/sk/.cargo/bin 2.6 MB /home/sk/mcelog 900 MB /home/sk/
顺便一提,上面结果中的最后一行是指定目录 /home/sk 的总大小。所以不要惊讶为什么输入的是 5 而实际输出了 6 行结果。
在当前目录下查找带有构建工程的目录,可以使用以下命令:
$ sn ar
tin-summer 同样支持查找指定大小的带有构建工程的目录。例如执行以下命令可以查找到大小在 100 MB 以上的带有构建工程的目录:
$ sn ar -t100M
如上文所说,tin-summer 在操作大目录的时候速度比较快,因此在操作小目录的时候,速度会相对比较慢一些。不过它的开发者已经表示,将会在以后的版本中优化这个缺陷。
要获取相关的帮助,可以执行以下命令:
$ sn --help
如果想要更详尽的介绍,可以查看这个项目的 GitHub 页面。
dust
dust (含义是 du + rust = dust )使用 Rust 编写,是一个免费、开源的更直观的 du 工具。它可以在不需要 head 或sort 命令的情况下即时显示目录占用的磁盘空间。与 tin-summer 一样,它会默认情况以易读的格式显示每个目录的大小。
安装 dust
由于 dust 也是使用 Rust 编写,因此它也可以通过 cargo 软件包管理器进行安装:
$ cargo install du-dust
(编辑:ASP站长网)
|