---
author: Sk
category: 分享
comments_data:
- date: '2019-05-24 13:46:06'
  message: Cool!
  postip: 61.145.156.28
  username: 来自广东深圳的 Chrome 74.0|GNU/Linux 用户
- date: '2019-05-24 13:46:09'
  message: Cool!
  postip: 61.145.156.28
  username: 来自广东深圳的 Chrome 74.0|GNU/Linux 用户
- date: '2019-05-24 13:46:09'
  message: Cool!
  postip: 61.145.156.28
  username: 来自广东深圳的 Chrome 74.0|GNU/Linux 用户
- date: '2019-05-25 21:50:16'
  message: 感觉 du 命令就够用了
  postip: 171.8.221.2
  username: 来自河南郑州的 Firefox 67.0|GNU/Linux 用户
count:
  commentnum: 4
  favtimes: 3
  likes: 0
  sharetimes: 0
  viewnum: 5817
date: '2019-05-24 12:27:44'
editorchoice: false
excerpt: Duc 是一个快速而且灵活的工具。它将你的硬盘使用情况存在一个优化过的数据库里，这样你就可以在索引完成后迅速找到你的数据。此外，它自带不同的用户交互界面与后端以访问数据库并绘制图表。
fromurl: https://www.ostechnix.com/duc-a-collection-of-tools-to-inspect-and-visualize-disk-usage/
id: 10892
islctt: true
largepic: /images/p/201905/24/122746i737b3g393879b67.png
permalink: /article-10892-1.html
pic: /images/p/201905/24/122746i737b3g393879b67.png.thumb.jpg
related: []
reviewer: wxy
selector: lujun9972
summary: Duc 是一个快速而且灵活的工具。它将你的硬盘使用情况存在一个优化过的数据库里，这样你就可以在索引完成后迅速找到你的数据。此外，它自带不同的用户交互界面与后端以访问数据库并绘制图表。
tags:
- 磁盘
- duc
thumb: false
title: Duc：一个能够可视化洞察硬盘使用情况的工具包
titlepic: true
translator: tomjlw
updated: '2019-05-24 12:27:44'
---

![Duc：一个能够洞察并可视化硬盘使用情况的工具包](/images/p/201905/24/122746i737b3g393879b67.png)


Duc 是一个在类 Unix 操作系统上可以用来索引、洞察及可视化硬盘使用情况的工具包。别把它当成一个仅能用漂亮图表展现硬盘使用情况的 CLI 工具。它对巨大的文件系统也支持的很好。Duc 已在由超过五亿个文件和几 PB 的存储组成的系统上测试过，没有任何问题。


Duc 是一个快速而且灵活的工具。它将你的硬盘使用情况存在一个优化过的数据库里，这样你就可以在索引完成后迅速找到你的数据。此外，它自带不同的用户交互界面与后端以访问数据库并绘制图表。


以下列出的是目前支持的用户界面（UI）：


1. 命令行界面（`duc ls`）
2. Ncurses 控制台界面（`duc ui`）
3. X11 GUI（`duc gui`）
4. OpenGL GUI（`duc gui`）


支持的后端数据库：


* Tokyocabinet
* Leveldb
* Sqlite3


Duc 默认使用 Tokyocabinet 作为后端数据库。


### 安装 Duc


Duc 可以从 Debian 以及其衍生品例如 Ubuntu 的默认仓库中获取。因此在基于 DEB 的系统上安装 Duc 是小菜一碟。



```
$ sudo apt-get install duc
```

在其它 Linux 发行版上你需要像以下所展示的那样手动从源代码编译安装 Duc。


可以从 Github 上的[发行](https://github.com/zevv/duc/releases)页面下载最新的 Duc 源代码的 .tgz 文件。在写这篇教程的时候，最新的版本是1.4.4。



```
$ wget https://github.com/zevv/duc/releases/download/1.4.4/duc-1.4.4.tar.gz
```

然后一个接一个地运行以下命令来安装 DUC。



```
$ tar -xzf duc-1.4.4.tar.gz
$ cd duc-1.4.4
$ ./configure
$ make
$ sudo make install
```

### 使用 Duc


`duc` 的典型用法是：



```
$ duc <subcommand> <options>
```

你可以通过运行以下命令来浏览总的选项列表以及子命令：



```
$ duc help
```

你也可以像下面这样了解一个特定子命令的用法。



```
$ duc help <subcommand>
```

要查看所有命令与其选项的列表，仅需运行：



```
$ duc help --all
```

让我们看看一些 `duc` 工具的特定用法。


### 创建索引（数据库）


首先，你需要创建一个你文件系统的索引文件（数据库）。使用 `duc index` 命令以创建索引文件。


比如说，要创建你的 `/home` 目录的索引，仅需运行：



```
$ duc index /home
```

上述命令将会创建你的 `/home` 目录的索引，并将其保存在 `$HOME/.duc.db` 文件中。如果你以后需要往 `/home` 目录添加新的文件或目录，只要在之后重新运行一下上面的命令来重建索引。


### 查询索引


Duc 有不同的子命令来查询并探索索引。


要查看可访问的索引列表，运行：



```
$ duc info
```

示例输出：



```
Date Time Files Dirs Size Path
2019-04-09 15:45:55 3.5K 305 654.6M /home
```

如你在上述输出所见，我已经索引好了 `/home` 目录。


要列出当前工作目录中所有的文件和目录，你可以这样做：



```
$ duc ls
```

要列出指定的目录，例如 `/home/sk/Downloads` 中的文件/目录，仅需像下面这样将路径作为参数传过去。



```
$ duc ls /home/sk/Downloads
```

类似的，运行 `duc ui` 命令来打开基于 ncurses 的控制台用户界面以探索文件系统使用情况，运行`duc gui` 以打开图形界面（X11）来探索文件系统。


要了解更多子命令的用法，仅需参考帮助部分。



```
$ duc help ls
```

上述命令将会展现 `ls` 子命令的帮助部分。


### 可视化硬盘使用状况


在之前的部分我们以及看到如何用 duc 子命令列出文件和目录。在此之外，你甚至可以用一张漂亮的图表展示文件大小。


要展示所提供目录的图表，像以下这样使用 `ls` 子命令。



```
$ duc ls -Fg /home/sk
```

示例输出：


![使用 “duc ls” 命令可视化硬盘使用情况](/images/p/201905/24/122747zu4p4a1la17lpllp.png)


如你在上述输出所见，`ls` 子命令查询 duc 数据库并列出了所提供目录包含的文件与目录的大小，在这里就是 `/home/sk/`。


这里 `-F` 选项是往条目中用来添加文件类型指示符（`/`），`-g` 选项是用来绘制每个条目相对大小的图表。


请注意如果未提供任何路径，就会使用当前工作目录。


你可以使用 `-R` 选项来用[树状结构](https://www.ostechnix.com/view-directory-tree-structure-linux/)浏览硬盘使用情况。



```
$ duc ls -R /home/sk
```

![用树状结构可视化硬盘使用情况](/images/p/201905/24/122749k94q0l9jftxqzufr.png)


要查询 duc 数据库并打开基于 ncurses 的控制台以探索所提供的目录，像以下这样使用 `ui` 子命令。



```
$ duc ui /home/sk
```

![](/images/p/201905/24/122750p6irgz99ddhdfdyo.png)


类似的，我们使用 `gui *` 子命令来查询 duc 数据库以及打开一个图形界面（X11）来了解指定路径的硬盘使用情况。



```
$ duc gui /home/sk
```

![](/images/p/201905/24/122752cyyhozjhoyoxjo6y.png)


像我之前所提到的，我们可以像下面这样了解更多关于特定子命令的用法。



```
$ duc help <子命令名字>
```

我仅仅覆盖了基本用法的部分，参考 man 页面了解关于 `duc` 工具的更多细节。



```
$ man duc
```

相关阅读：


* [Filelight – 在你的 Linux 系统上可视化硬盘使用情况](https://www.ostechnix.com/filelight-visualize-disk-usage-on-your-linux-system/)
* [一些好的 du 命令的替代品](https://www.ostechnix.com/some-good-alternatives-to-du-command/)
* [如何在 Linux 中用 Ncdu 检查硬盘使用情况](https://www.ostechnix.com/check-disk-space-usage-linux-using-ncdu/)
* [Agedu——发现 Linux 中被浪费的硬盘空间](https://www.ostechnix.com/agedu-find-out-wasted-disk-space-in-linux/)
* [如何在 Linux 中找到目录大小](https://www.ostechnix.com/find-size-directory-linux/)
* [为初学者打造的带有示例的 df 命令教程](https://www.ostechnix.com/the-df-command-tutorial-with-examples-for-beginners/)


### 总结


Duc 是一款简单却有用的硬盘用量查看器。如果你想要快速简便地知道哪个文件/目录占用你的硬盘空间，Duc 可能是一个好的选择。你还等什么呢？获取这个工具，扫描你的文件系统，摆脱无用的文件/目录。


现在就到此为止了。希望这篇文章有用处。更多好东西马上就到。保持关注！


欢呼吧！


资源：


* [Duc 网站](https://duc.zevv.nl/)




---


via: <https://www.ostechnix.com/duc-a-collection-of-tools-to-inspect-and-visualize-disk-usage/>


作者：[sk](https://www.ostechnix.com/author/sk/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[tomjlw](https://github.com/tomjlw) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出