當前位置:
首頁 > 知識 > 幾個用於替代 du 命令的更好選擇

幾個用於替代 du 命令的更好選擇

幾個用於替代 du 命令的更好選擇

打開今日頭條,查看更多精彩圖片

編譯自: https://www.ostechnix.com/some-good-alternatives-to-du-command/

作者: Sk

譯者: Hank Chow

大家對 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

也可以從它的 軟體發布頁 下載最新版本的二進位文件,並按照以下步驟安裝。在寫這篇文章的時候,最新的版本是 0.3.1。


$ wget https://github.com/bootandy/dust/releases/download/v0.3.1/dust-v0.3.1-x86_64-unknown-linux-gnu.tar.gz

抽取文件:


$ tar -xvf dust-v0.3.1-x86_64-unknown-linux-gnu.tar.gz

最後將可執行文件複製到你的 $PATH(例如 /usr/local/bin)下:


$ sudo mv dust /usr/local/bin/

用法

需要查看當前目錄及所有子目錄下的文件大小,可以執行以下命令:

$ dust

輸出示例:


幾個用於替代 du 命令的更好選擇


帶上 -p 參數可以按照從當前目錄起始的完整目錄顯示。


$ dust -p


幾個用於替代 du 命令的更好選擇


dust 2

如果需要查看多個目錄的大小,只需要同時列出這些目錄,並用空格分隔開即可:


$ dust <dir1> <dir2>

下面再多舉幾個例子,例如:

顯示文件的長度:


$ dust -s

只顯示 10 個目錄:


$ dust -n 10

查看當前目錄下最多 3 層子目錄:


$ dust -d 3

查看幫助:


$ dust -h

如果想要更詳盡的介紹,可以查看 這個項目的 GitHub 頁面 。


diskus

diskus 也是使用 Rust 編寫的一個小型、快速的開源工具,它可以用於替代 du -sh 命令。diskus 將會計算當前目錄下所有文件的總大小,它的效果相當於 du -sh 或 du -sh --bytes,但其開發者表示 diskus 的運行速度是 du -sh 的 9 倍。

安裝 diskus

diskus 已經存放於 Arch Linux 社區用戶軟體倉庫(Arch Linux User-community Repository)( AUR )當中,可以通過任何一種 AUR 幫助工具(例如 yay )把它安裝在基於 Arch 的系統上:


$ yay -S diskus

對於 Ubuntu 及其衍生髮行版,可以在 diskus 的 軟體發布頁 上下載最新版的軟體包並安裝:


$ wget "https://github.com/sharkdp/diskus/releases/download/v0.3.1/diskus_0.3.1_amd64.deb"

$ sudo dpkg -i diskus_0.3.1_amd64.deb

還可以使用 cargo 軟體包管理器安裝 diskus,但必須在系統上先安裝 Rust 1.29+。

安裝好 Rust 之後,就可以使用以下命令安裝 diskus:


$ cargo install diskus

用法

在通常情況下,如果需要查看某個目錄的大小,我會使用形如 du -sh 的命令。


$ du -sh dir

這裡的 -s 參數表示顯示總大小。

如果使用 diskus,直接就可以顯示當前目錄的總大小。


$ diskus


幾個用於替代 du 命令的更好選擇


我使用 diskus 查看 Arch Linux 系統上各個目錄的總大小,這個工具的速度確實比 du -sh 快得多。但是它目前只能顯示當前目錄的大小。

要獲取相關的幫助,可以執行以下命令:


$ diskus -h

如果想要更詳盡的介紹,可以查看 這個項目的 GitHub 頁面 。


duu

duu 是 Directory Usage Utility 的縮寫。它是使用 Python 編寫的查看指定目錄大小的工具。它具有跨平台的特性,因此在 Windows、Mac OS 和 Linux 系統上都能夠使用。

安裝 duu

安裝這個工具之前需要先安裝 Python 3。不過目前很多 Linux 發行版的默認軟體倉庫中都帶有 Python 3,所以這個依賴並不難解決。

Python 3 安裝完成後,從 duu 的 軟體發布頁 下載其最新版本。


$ wget https://github.com/jftuga/duu/releases/download/2.20/duu.py

用法

要查看當前目錄的大小,只需要執行以下命令:


$ python3 duu.py

輸出示例:


幾個用於替代 du 命令的更好選擇


從上圖可以看出,duu 會顯示當前目錄下文件的數量情況,按照 Byte、KB、MB 單位顯示這些文件的總大小,以及每個文件的大小。

如果需要查看某個目錄的大小,只需要聲明目錄的絕對路徑即可:


$ python3 duu.py /home/sk/Downloads/

如果想要更詳盡的介紹,可以查看 這個項目的 GitHub 頁面 。

以上就是 du 命令的五種替代方案,希望這篇文章能夠幫助到你。就我自己而言,我並不會在這五種工具之間交替使用,我更喜歡使用 ncdu。歡迎在下面的評論區發表你對這些工具的評論。



via: https://www.ostechnix.com/some-good-alternatives-to-du-command/

作者: SK 選題: lujun9972 譯者: HankChow 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


點擊「了解更多」可訪問文內鏈接

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Linux技術 的精彩文章:

最棒的免費 Roguelike 遊戲
使用 Redis 和 Python 構建一個共享單車的應用程序

TAG:Linux技術 |