From de929f06277c3821d86943c6ad238b7200c973d1 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 23 Jun 2021 05:04:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210622=20Replace?= =?UTF-8?q?=20du=20with=20dust=20on=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210622 Replace du with dust on Linux.md --- .../20210622 Replace du with dust on Linux.md | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 sources/tech/20210622 Replace du with dust on Linux.md diff --git a/sources/tech/20210622 Replace du with dust on Linux.md b/sources/tech/20210622 Replace du with dust on Linux.md new file mode 100644 index 0000000000..a877d52a46 --- /dev/null +++ b/sources/tech/20210622 Replace du with dust on Linux.md @@ -0,0 +1,152 @@ +[#]: subject: (Replace du with dust on Linux) +[#]: via: (https://opensource.com/article/21/6/dust-linux) +[#]: author: (Sudeshna Sur https://opensource.com/users/sudeshna-sur) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Replace du with dust on Linux +====== +The dust command is a more intuitive implementation of the du command +written in Rust. +![Sand dunes][1] + +If you work on the Linux command line, you will be familiar with the `du` command. Knowing commands like `du`, which returns information about disk usage quickly, is one of the ways the command line makes programmers more productive. Yet if you're looking for a way to save even more time and make your life even easier, take a look at [dust][2], which is `du` rewritten in Rust with more intuitiveness. + +In short, `dust` is a tool that provides a file's type and metadata. If you trigger `dust` in a directory, it will report that directory's disk utilization in a couple of ways. It provides a very informative graph that tells you which folder is using the most disk space. If there is a nested folder, you can see the percentage of space used by each folder. + +### Install dust + +You can install `dust` using Rust's Cargo package manager: + + +``` +`$ cargo install du-dust` +``` + +Alternately, you might find it in your software repository on Linux, and on macOS, use [MacPorts][3] or [Homebrew][4]. + +### Explore dust + +Issuing the `dust` command on a directory returns a graph that shows its contents and what percentage each item holds in a tree format. + + +``` +$ dust + 5.7M   ┌── exa                                                           │                                                ██ │   2% + 5.9M   ├── tokei                                                         │                                                ██ │   2% + 6.1M   ├── dust                                                          │                                                ██ │   2% + 6.2M   ├── tldr                                                          │                                                ██ │   2% + 9.4M   ├── fd                                                            │                                                ██ │   4% + 2.9M   │ ┌── exa                                                         │                                              ░░░█ │   1% +  15M   │ ├── rustdoc                                                     │                                              ░███ │   6% +  18M   ├─┴ bin                                                           │                                              ████ │   7% +  27M   ├── rg                                                            │                                            ██████ │  11% + 1.3M   │     ┌── libz-sys-1.1.3.crate                                    │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█ │   0% + 1.4M   │     ├── libgit2-sys-0.12.19+1.1.0.crate                         │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█ │   1% + 4.5M   │   ┌─┴ github.com-1ecc6299db9ec823                               │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█ │   2% + 4.5M   │ ┌─┴ cache                                                       │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░█ │   2% + 1.0M   │ │   ┌── git2-0.13.18                                            │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   0% + 1.4M   │ │   ├── exa-0.10.1                                              │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 1.5M   │ │   │ ┌── src                                                   │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 2.2M   │ │   ├─┴ idna-0.2.3                                              │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 1.2M   │ │   │       ┌── linux                                           │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   0% + 1.6M   │ │   │     ┌─┴ linux_like                                        │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 2.6M   │ │   │   ┌─┴ unix                                                │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 3.1M   │ │   │ ┌─┴ src                                                   │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 3.1M   │ │   ├─┴ libc-0.2.94                                             │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 1.2M   │ │   │     ┌── test                                              │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   0% + 2.6M   │ │   │   ┌─┴ zlib-ng                                             │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 904K   │ │   │   │   ┌── vstudio                                         │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   0% + 2.0M   │ │   │   │ ┌─┴ contrib                                           │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 3.4M   │ │   │   ├─┴ zlib                                                │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 6.1M   │ │   │ ┌─┴ src                                                   │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓██ │   2% + 6.1M   │ │   ├─┴ libz-sys-1.1.3                                          │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓██ │   2% + 1.6M   │ │   │     ┌── pcre                                              │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 2.5M   │ │   │   ┌─┴ deps                                                │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 3.8M   │ │   │   ├── src                                                 │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓▓█ │   1% + 7.4M   │ │   │ ┌─┴ libgit2                                               │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓██ │   3% + 7.6M   │ │   ├─┴ libgit2-sys-0.12.19+1.1.0                               │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓▓▓██ │   3% +  26M   │ │ ┌─┴ github.com-1ecc6299db9ec823                               │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██████ │  10% +  26M   │ ├─┴ src                                                         │               ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██████ │  10% + 932K   │ │   ┌── .cache                                                  │               ░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ │   0% +  11M   │ │   │     ┌── pack-c3e3a51a17096a3078196f3f014e02e5da6285aa.idx │               ░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓███ │   4% + 135M   │ │   │     ├── pack-c3e3a51a17096a3078196f3f014e02e5da6285aa.pack│               ░░░░░░▓▓███████████████████████████ │  53% + 147M   │ │   │   ┌─┴ pack                                                │               ░░░░░░█████████████████████████████ │  57% + 147M   │ │   │ ┌─┴ objects                                               │               ░░░░░░█████████████████████████████ │  57% + 147M   │ │   ├─┴ .git                                                    │               ░░░░░░█████████████████████████████ │  57% + 147M   │ │ ┌─┴ github.com-1ecc6299db9ec823                               │               ░░░░░░█████████████████████████████ │  57% + 147M   │ ├─┴ index                                                       │               ░░░░░░█████████████████████████████ │  57% + 178M   ├─┴ registry                                                      │               ███████████████████████████████████ │  69% + 257M ┌─┴ .                                                               │██████████████████████████████████████████████████ │ 100% +$ +``` + +To apply `dust` to a specific directory: + + +``` +`$ dust ~/Work/` +``` + +![Dust output from a specific directory][5] + +(Sudeshna Sur, [CC BY-SA 4.0][6]) + +The `-r` option shows the output in reverse order, with root at the bottom: + + +``` +`$ dust -r ~/Work/` +``` + +Using `dust -d 3` returns three levels of subdirectories and their disk utilization: + + +``` +`$ dust -d 3 ~/Work/wildfly/jaxrs/target/classes`[/code] [code] + +$ dust -d 3 ~/Work/wildfly/jaxrs/target/classes + 4.0K     ┌── jaxrs.xml                                                           │                                         █ │   1% + 4.0K   ┌─┴ subsystem-templates                                                   │                                         █ │   1% + 4.0K   │   ┌── org.jboss.as.controller.transform.ExtensionTransformerRegistration│                                         █ │   1% + 4.0K   │   ├── org.jboss.as.controller.Extension                                 │                                         █ │   1% + 8.0K   │ ┌─┴ services                                                            │                                         █ │   2% + 8.0K   ├─┴ META-INF                                                              │                                         █ │   2% + 4.0K   │ ┌── jboss-as-jaxrs_1_0.xsd                                              │                                        ░█ │   1% + 8.0K   │ ├── jboss-as-jaxrs_2_0.xsd                                              │                                        ░█ │   2% +  12K   ├─┴ schema                                                                │                                        ██ │   3% + 408K   │   ┌── as                                                                │  ████████████████████████████████████████ │  94% + 408K   │ ┌─┴ jboss                                                               │  ████████████████████████████████████████ │  94% + 408K   ├─┴ org                                                                   │  ████████████████████████████████████████ │  94% + 432K ┌─┴ classes                                                                 │██████████████████████████████████████████ │ 100% +$ +``` + +### Conclusion + +The beauty of `dust` lies in being a small, simple, and easy-to-understand command. It uses a color scheme to denote the largest subdirectories, making it easy to visualize your directory. It's a popular project, and contributions are welcome. + +Have you used or considered using `dust`? If so, please let us know your thoughts in the comments below. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/6/dust-linux + +作者:[Sudeshna Sur][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/sudeshna-sur +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/sand_dunes_desert_hills_landscape_nature.jpg?itok=wUByylBb +[2]: https://github.com/bootandy/dust +[3]: https://opensource.com/article/20/11/macports +[4]: https://opensource.com/article/20/6/homebrew-mac +[5]: https://opensource.com/sites/default/files/uploads/dust-work.png (Dust output from a specific directory) +[6]: https://creativecommons.org/licenses/by-sa/4.0/