這篇文章給大家分享的是有關(guān)linux如何替代du命令的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)自2013年起,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元五原做網(wǎng)站,已為上家服務(wù),為五原各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108
ncdu
作為普通 du
的替代品,這在 Linux 社區(qū)中已經(jīng)很流行了。ncdu
正是基于開(kāi)發(fā)者們對(duì) du
的性能不滿(mǎn)意而被開(kāi)發(fā)出來(lái)的。ncdu
是一個(gè)使用 C 語(yǔ)言和 ncurses 接口開(kāi)發(fā)的簡(jiǎn)易快速的磁盤(pán)用量分析器,可以用來(lái)查看目錄或文件在本地或遠(yuǎn)程系統(tǒng)上占用磁盤(pán)空間的情況。如果你有興趣查看關(guān)于 ncdu
的詳細(xì)介紹,可以瀏覽《如何在 Linux 上使用 ncdu 查看磁盤(pán)占用量》這一篇文章。
tin-summer 是使用 Rust 語(yǔ)言編寫(xiě)的自由開(kāi)源工具,它可以用于查找占用磁盤(pán)空間的文件,它也是 du
命令的另一個(gè)替代品。由于使用了多線(xiàn)程,因此 tin-summer 在計(jì)算大目錄的大小時(shí)會(huì)比 du
命令快得多。tin-summer 與 du
命令之間的區(qū)別是前者讀取文件的大小,而后者則讀取磁盤(pán)使用情況。
tin-summer 的開(kāi)發(fā)者認(rèn)為它可以替代 du
,因?yàn)樗哂幸韵聝?yōu)勢(shì):
在大目錄的操作速度上比 du
更快;
在顯示結(jié)果上默認(rèn)采用易讀格式;
可以使用正則表達(dá)式排除文件或目錄;
可以對(duì)輸出進(jìn)行排序和著色處理;
可擴(kuò)展,等等。
安裝 tin-summer
要安裝 tin-summer,只需要在終端中執(zhí)行以下命令:
$ curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer
你也可以使用 cargo
軟件包管理器安裝 tin-summer,但你需要在系統(tǒng)上先安裝 Rust。在 Rust 已經(jīng)安裝好的情況下,執(zhí)行以下命令:
$ cargo install tin-summer
如果上面提到的這兩種方法都不能成功安裝 tin-summer,還可以從它的軟件發(fā)布頁(yè)下載***版本的二進(jìn)制文件編譯,進(jìn)行手動(dòng)安裝。
用法
(LCTT 譯注:tin-summer 的命令名為 sn
)
如果需要查看當(dāng)前工作目錄的文件大小,可以執(zhí)行以下命令:
$ sn f749 MB ./.rustup/toolchains749 MB ./.rustup147 MB ./.cargo/bin147 MB ./.cargo900 MB .
不需要進(jìn)行額外聲明,它也是默認(rèn)以易讀的格式向用戶(hù)展示數(shù)據(jù)。在使用 du
命令的時(shí)候,則必須加上額外的 -h
參數(shù)才能得到同樣的效果。
只需要按以下的形式執(zhí)行命令,就可以查看某個(gè)特定目錄的文件大小。
$ sn f
還可以對(duì)輸出結(jié)果進(jìn)行排序,例如下面的命令可以輸出指定目錄中***的 5 個(gè)文件或目錄:
$ sn sort /home/sk/ -n5749 MB /home/sk/.rustup749 MB /home/sk/.rustup/toolchains147 MB /home/sk/.cargo147 MB /home/sk/.cargo/bin2.6 MB /home/sk/mcelog900 MB /home/sk/
順便一提,上面結(jié)果中的***一行是指定目錄 /home/sk
的總大小。所以不要驚訝為什么輸入的是 5 而實(shí)際輸出了 6 行結(jié)果。
在當(dāng)前目錄下查找?guī)в袠?gòu)建工程的目錄,可以使用以下命令:
$ sn ar
tin-summer 同樣支持查找指定大小的帶有構(gòu)建工程的目錄。例如執(zhí)行以下命令可以查找到大小在 100 MB 以上的帶有構(gòu)建工程的目錄:
$ sn ar -t100M
如上文所說(shuō),tin-summer 在操作大目錄的時(shí)候速度比較快,因此在操作小目錄的時(shí)候,速度會(huì)相對(duì)比較慢一些。不過(guò)它的開(kāi)發(fā)者已經(jīng)表示,將會(huì)在以后的版本中優(yōu)化這個(gè)缺陷。
要獲取相關(guān)的幫助,可以執(zhí)行以下命令:
$ sn --help
如果想要更詳盡的介紹,可以查看這個(gè)項(xiàng)目的 GitHub 頁(yè)面。
dust
(含義是 du
+ rust
= dust
)使用 Rust 編寫(xiě),是一個(gè)免費(fèi)、開(kāi)源的更直觀(guān)的 du
工具。它可以在不需要 head
或sort
命令的情況下即時(shí)顯示目錄占用的磁盤(pán)空間。與 tin-summer 一樣,它會(huì)默認(rèn)情況以易讀的格式顯示每個(gè)目錄的大小。
安裝 dust
由于 dust
也是使用 Rust 編寫(xiě),因此它也可以通過(guò) cargo
軟件包管理器進(jìn)行安裝:
$ cargo install du-dust
也可以從它的軟件發(fā)布頁(yè)下載***版本的二進(jìn)制文件,并按照以下步驟安裝。在寫(xiě)這篇文章的時(shí)候,***的版本是 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
***將可執(zhí)行文件復(fù)制到你的 $PATH
(例如 /usr/local/bin
)下:
$ sudo mv dust /usr/local/bin/
用法
需要查看當(dāng)前目錄及所有子目錄下的文件大小,可以執(zhí)行以下命令:
$ dust
輸出示例:
帶上 -p
參數(shù)可以按照從當(dāng)前目錄起始的完整目錄顯示。
$ dust -p
dust 2
如果需要查看多個(gè)目錄的大小,只需要同時(shí)列出這些目錄,并用空格分隔開(kāi)即可:
$ dust
下面再多舉幾個(gè)例子,例如:
顯示文件的長(zhǎng)度:
$ dust -s
只顯示 10 個(gè)目錄:
$ dust -n 10
查看當(dāng)前目錄下最多 3 層子目錄:
$ dust -d 3
查看幫助:
$ dust -h
如果想要更詳盡的介紹,可以查看這個(gè)項(xiàng)目的 GitHub 頁(yè)面。
diskus
也是使用 Rust 編寫(xiě)的一個(gè)小型、快速的開(kāi)源工具,它可以用于替代 du -sh
命令。diskus
將會(huì)計(jì)算當(dāng)前目錄下所有文件的總大小,它的效果相當(dāng)于 du -sh
或 du -sh --bytes
,但其開(kāi)發(fā)者表示 diskus
的運(yùn)行速度是 du -sh
的 9 倍。
安裝 diskus
diskus
已經(jīng)存放于Arch Linux 社區(qū)用戶(hù)軟件倉(cāng)庫(kù)(AUR)當(dāng)中,可以通過(guò)任何一種 AUR 幫助工具(例如 yay
)把它安裝在基于 Arch 的系統(tǒng)上:
$ yay -S diskus
對(duì)于 Ubuntu 及其衍生發(fā)行版,可以在 diskus
的軟件發(fā)布頁(yè)上下載***版的軟件包并安裝:
$ 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
,但必須在系統(tǒng)上先安裝 Rust 1.29+。
安裝好 Rust 之后,就可以使用以下命令安裝 diskus
:
$ cargo install diskus
用法
在通常情況下,如果需要查看某個(gè)目錄的大小,我會(huì)使用形如 du -sh
的命令。
$ du -sh dir
這里的 -s
參數(shù)表示顯示總大小。
如果使用 diskus
,直接就可以顯示當(dāng)前目錄的總大小。
$ diskus
我使用 diskus
查看 Arch Linux 系統(tǒng)上各個(gè)目錄的總大小,這個(gè)工具的速度確實(shí)比 du -sh
快得多。但是它目前只能顯示當(dāng)前目錄的大小。
要獲取相關(guān)的幫助,可以執(zhí)行以下命令:
$ diskus -h
如果想要更詳盡的介紹,可以查看這個(gè)項(xiàng)目的 GitHub 頁(yè)面。
duu
是 Directory Usage Utility 的縮寫(xiě)。它是使用 Python 編寫(xiě)的查看指定目錄大小的工具。它具有跨平臺(tái)的特性,因此在 Windows、Mac OS 和 Linux 系統(tǒng)上都能夠使用。
安裝 duu
安裝這個(gè)工具之前需要先安裝 Python 3。不過(guò)目前很多 Linux 發(fā)行版的默認(rèn)軟件倉(cāng)庫(kù)中都帶有 Python 3,所以這個(gè)依賴(lài)并不難解決。
Python 3 安裝完成后,從 duu
的軟件發(fā)布頁(yè)下載其***版本。
$ wget https://github.com/jftuga/duu/releases/download/2.20/duu.py
用法
要查看當(dāng)前目錄的大小,只需要執(zhí)行以下命令:
$ python3 duu.py
輸出示例:
從上圖可以看出,duu
會(huì)顯示當(dāng)前目錄下文件的數(shù)量情況,按照 Byte、KB、MB 單位顯示這些文件的總大小,以及每個(gè)文件的大小。
如果需要查看某個(gè)目錄的大小,只需要聲明目錄的絕對(duì)路徑即可:
$ python3 duu.py /home/sk/Downloads/
感謝各位的閱讀!關(guān)于“l(fā)inux如何替代du命令”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!