自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五款可替代 du 命令的工具!

系統(tǒng) Linux
在 Linux 環(huán)境下,du 命令大家都不陌生,它可以對(duì) Linux 系統(tǒng)中的文件和目錄空間使用情況進(jìn)行計(jì)算和匯總。

 在 Linux 環(huán)境下,du 命令大家都不陌生,它可以對(duì) Linux 系統(tǒng)中的文件和目錄空間使用情況進(jìn)行計(jì)算和匯總。

當(dāng)文件占用磁盤(pán)空間 80 % 且在暫時(shí)無(wú)法擴(kuò)容空間的情況下,我們可以找出系統(tǒng)中占比磁盤(pán)空間較大的具體目錄下的文件進(jìn)行清理,只需執(zhí)行如下命令即可查看文件夾占用空間大小。

  1. # du -sh 

進(jìn)入占用空間較大的文件夾執(zhí)行如下命令可以將當(dāng)前目錄下的文件從大到小排序。 

  1. # du -sh * |sort -rh 

將輸出后占用空間較大的文件根據(jù)實(shí)際情況判斷是否可以正常刪除,從而來(lái)釋放磁盤(pán)空間并進(jìn)行觀察磁盤(pán)使用率。

當(dāng)文件占用磁盤(pán)空間較多時(shí),du 就會(huì)執(zhí)行很慢,每次會(huì)反復(fù)執(zhí)行來(lái)找出大文件,效率較低,此時(shí)ncdu就可以來(lái)解決該問(wèn)題。

一、ncdu

ncdu 是一個(gè)使用 C 語(yǔ)言和 ncurses 接口開(kāi)發(fā)的簡(jiǎn)易快速的磁盤(pán)用量分析器,可以用來(lái)查看目錄或文件在本地或遠(yuǎn)程系統(tǒng)上占用磁盤(pán)空間的情況。

Ubuntu 21.10 安裝 ncdu:

  1. # sudo apt-get install ncdu 

ncdu 參數(shù)選項(xiàng):

  •  -h:幫助信息
  •  -q:靜音模式,刷新間為 2 秒
  •  -v:打印版本
  •  -x:相同的文件系統(tǒng)
  •  -e:?jiǎn)⒂脭U(kuò)展信息
  •  -r:只讀
  •  -o FILE:將掃描目錄導(dǎo)出為文件
  •  -f FILE:從文件中導(dǎo)入掃描目錄
  •  -0,-1,-2:掃描時(shí)使用的 UI (0=none,2=full ncurses)
  •  --si:使用基數(shù) 10 (SI) 前綴而不是基數(shù) 2
  •  --exclude PATTERN:排除匹配 PATTERN 的文件
  •  -X, --exclude-from FILE:排除與文件中任何模式匹配的文件
  •  -L, --follow-symlinks:按照符號(hào)鏈接(不包括目錄)
  •  --exclude-caches:排除包含 CACHEDIR.TAG 的目錄
  •  --exclude-kernfs:排除 Linux 偽文件系統(tǒng)(procfs、sysfs、cgroup…)
  •  --confirm-quit:確認(rèn)退出
  •  --color SCHEME:設(shè)置配色方案

如果不使用任何參數(shù)選項(xiàng),可直接在需要分析的目錄下執(zhí)行命令ncdu,等待 ncdu 掃描完畢后,此時(shí)就會(huì)彈出一個(gè)交互式的終端界面。

可以清晰的看出每個(gè)目錄的大小,使用方向鍵或Enter鍵可進(jìn)入或退出所選的具體目錄。

當(dāng)發(fā)現(xiàn)某個(gè)目錄或文件占用空間較大時(shí),可根據(jù)上述使用鍵盤(pán)情況找到那個(gè)文件,切合實(shí)際情況確認(rèn)如果可以刪除的話,無(wú)需退出 ncdu,選中要?jiǎng)h除的目錄或文件后,按d鍵即可刪除,若刪除完畢,按q鍵即可退出。

二、dust

dust(du + rust = dust)是用 rust 編寫(xiě)的一個(gè)免費(fèi)、開(kāi)源、更直觀的 du 工具,也是一個(gè)提供文件類(lèi)型和元數(shù)據(jù)的工具。

Ubuntu 21.10 安裝 dust:

du-dust_0.7.1_amd64.deb 是 dust GitHub 存儲(chǔ)庫(kù)中的最新版本,從 dust 的發(fā)布頁(yè)面下載.deb文件,可執(zhí)行如下命令進(jìn)行下載和安裝。 

  1. # wget https://github.com/bootandy/dust/releases/du-dust_0.7.1_amd64.deb  
  2. # dpkg -i du-dust_0.7.1_amd64.deb 

對(duì)于其他系統(tǒng),可以參考 GitHub 上 dust 的其他操作系統(tǒng)安裝方式。

dust 用法: 

  1. dust [FLAGS] [OPTIONS] [--] [inputs]... 

dust 參數(shù)選項(xiàng):

  •  -f:目錄“大小”是子文件/目錄的數(shù)量,而不是磁盤(pán)大小
  •  -s:使用文件長(zhǎng)度而不是塊
  •  -p:子目錄的路徑不會(huì)縮短
  •  -h:幫助信息
  •  -i:不顯示隱藏文件
  •  -x:僅計(jì)算與提供的目錄位于同一文件系統(tǒng)上的文件和目錄
  •  -b:不會(huì)顯示百分比條或百分比
  •  -c:不會(huì)打印顏色(通常最大的目錄是彩色的)
  •  -r:打印樹(shù)倒置(最大的最高)
  •  -t:僅顯示這些文件類(lèi)型
  •  -V:打印版本信息
  •  -d:顯示深度
  •  -e:僅包含與此正則表達(dá)式匹配的文件。對(duì)于 png 文件類(lèi)型:-e ".png$"
  •  -X:排除任何具有此名稱(chēng)的文件或目錄
  •  -v:排除與此正則表達(dá)式匹配的文件。忽略 png 文件類(lèi)型:-v ".png$"
  •  -n:要顯示的輸出行數(shù)。這是高度,(但 h 有幫助)[默認(rèn)值:23]
  •  -w:指定輸出的寬度覆蓋終端寬度的自動(dòng)檢測(cè)

dust 使用:

查看當(dāng)前目錄及所有子目錄下的文件大小,可以執(zhí)行以下命令:

  1. # dust 

-p參數(shù)可以按照從當(dāng)前目錄起始的完整目錄進(jìn)行顯示 

  1. # dust -p 

如果只查看多個(gè)目錄的大小,只需要同時(shí)列出這些目錄,并用空格分隔開(kāi)即可: 

  1. # dust /bin /etc 

顯示文件的長(zhǎng)度: 

  1. # dust -s 

只顯示 10 個(gè)目錄: 

  1. # dust -n 10 

三、duu

duu 是 Directory Usage Utility(目錄使用實(shí)用程序)的縮寫(xiě),基于 Python 語(yǔ)言編寫(xiě)的查看指定目錄大小的工具,具有跨平臺(tái)特性,可以在 Windows、Linux 和 MacOS 操作系統(tǒng)上使用,它是以千字節(jié)為單位顯示目錄磁盤(pán)使用情況。

Ubuntu 21.10 安裝 duu:

安裝 duu 工具之前需要先確保系統(tǒng)有沒(méi)有安裝 Python 3 環(huán)境,沒(méi)有的話需要安裝一下,有的話忽略即可,不過(guò)目前在大多數(shù) Linux 發(fā)行版中默認(rèn)軟件倉(cāng)庫(kù)都是有 Python 3 的。

v2.22.tar.gz 是 duu GitHub 存儲(chǔ)庫(kù)中最新版本的源碼包,從 duu 的發(fā)布頁(yè)面下載.tar.gz文件,可執(zhí)行如下命令進(jìn)行下載和安裝。 

  1. # wget https://github.com/jftuga/duu/archive/refs/tags/v2.22.tar.gz  
  2. # tar -zxvf v2.22.tar.gz 

解壓完畢后,進(jìn)入 duu-2.22 文件夾,查看duu.py文件是否存在。 

  1. # ls | grep duu  
  2. duu-2.22  
  3. # cd duu-2.22/  
  4. # ls  
  5. duu.py  LICENSE  README.md 

duu 用法: 

  1. duu.py [-h] [-b] [-e] [-q] [-s STATUS] [-n] [-N] [-f] [-S] [-H] [-T THREADS] [-x EXCLUDE] [-X REGEXPR] [-o OUTPUT] [dname] 

duu 參數(shù)選項(xiàng):

  •  -h:幫助信息
  •  -b:不打印摘要或統(tǒng)計(jì)數(shù)據(jù),專(zhuān)門(mén)用于排序時(shí)使用
  •  -e:總結(jié)文件擴(kuò)展名
  •  -q:不顯示單個(gè)目錄
  •  -s:將處理狀態(tài)發(fā)送到 STDERR,每個(gè) STATUS 目錄數(shù)
  •  -n:跳過(guò)以“.”開(kāi)頭的目錄
  •  -N:不遞歸
  •  -f:顯示每個(gè)目錄中的文件數(shù)
  •  -S:顯示均值、中值、眾數(shù)和標(biāo)準(zhǔn)差文件統(tǒng)計(jì)信息
  •  -H:以更易讀的格式顯示數(shù)字
  •  -T:并發(fā)線程數(shù),考慮 SAN
  •  -x:排除不分大小寫(xiě)字符串的冒號(hào)分隔列表
  •  -X:排除不分大小寫(xiě)正則表達(dá)式的冒號(hào)分隔列表
  •  -o:輸出到 CSV 文件

duu 使用:

查看當(dāng)前目錄的大小,只需要執(zhí)行如下命令: 

  1. # python3 duu.py 

如上圖,可以看出 duu 會(huì)顯示當(dāng)前目錄下文件和目錄的數(shù)量并按照 Bytes、KB、MB 為單位顯示這些文件的總大小,以及每個(gè)文件的大小。

查看某個(gè)目錄的大小,只需要把目錄的絕對(duì)路徑加上即可: 

  1. # python3 duu.py /etc/init.d/ 

四、diskus

diskus 也是基于 Rust 編寫(xiě)的一個(gè)小型、快速、可替代du -sh命令的開(kāi)源工具,diskus 會(huì)計(jì)算當(dāng)前目錄下所有文件的大小,執(zhí)行命令diskus效果和du -sh、du -sh --bytes是一樣的。

根據(jù) diskus GitHub 存儲(chǔ)庫(kù)的開(kāi)發(fā)者表示,在他的 8 核筆記本電腦上,以 hyperfine 命令行基準(zhǔn)測(cè)試工具將中等大小的文件夾(15GB、100k 目錄、400k 文件)進(jìn)行測(cè)試,對(duì)于較小的文件夾測(cè)試實(shí)際上是沒(méi)有意義的,因?yàn)樗谐绦蚨紩?huì)在合理的時(shí)間內(nèi)完成,而不會(huì)中斷您的工作流程,從而得出的結(jié)論是:diskus 比 du 冷磁盤(pán)緩存快十倍左右,熱磁盤(pán)緩存快三倍多。

以下是冷磁盤(pán)緩存和熱磁盤(pán)緩存基于diskus、du -sh、sn p -d0 -j8和dust -d0命令測(cè)試出的結(jié)果對(duì)比。

冷磁盤(pán)緩存

Command Mean [s] Min [s] Max [s] Relative
diskus 1.746 ± 0.017 1.728 1.770 1.00
du -sh 17.776 ± 0.549 17.139 18.413 10.18
sn p -d0 -j8 18.094 ± 0.566 17.482 18.579 10.36
dust -d0 21.357 ± 0.328 20.974 21.759 12.23

熱磁盤(pán)緩存

Command Mean [s] Min [s] Max [s] Relative
diskus 500.3 ± 17.3 472.9 530.6 1.00
du -sh 1098.3 ± 10.0 1087.8 1122.4 2.20
sn p -d0 -j8 1122.2 ± 18.2 1107.3 1170.1 2.24
dust -d0 3532.1 ± 26.4 3490.0 3563.1 7.06

Ubuntu 21.10 安裝 diskus:

diskus_0.7.0_amd64.deb 是 diskus GitHub 存儲(chǔ)庫(kù)中的最新版本,從 diskus 的發(fā)布頁(yè)面下載.deb文件,可執(zhí)行如下命令進(jìn)行下載和安裝。 

  1. # wget https://github.com/sharkdp/diskus/releases/download/v0.7.0/diskus_0.7.0_amd64.deb  
  2. # dpkg -i diskus_0.7.0_amd64.deb 

對(duì)于其他系統(tǒng),可以參考 GitHub 上 diskus 的其他操作系統(tǒng)安裝方式進(jìn)行安裝。

diskus 用法:

  1. diskus [OPTIONS] [path]... 

diskus 參數(shù)選項(xiàng):

  •  -j:設(shè)置線程數(shù)(默認(rèn):3 x num cores),文件大小的輸出格式(十進(jìn)制:MB,二進(jìn)制:MiB)[默認(rèn):十進(jìn)制] [可能的值:十進(jìn)制、二進(jìn)制]
  •  -v:不隱藏文件系統(tǒng)錯(cuò)誤
  •  -b:計(jì)算表觀大小而不是磁盤(pán)使用量
  •  -h:幫助信息
  •  -v:版本信息

diskus 使用:

使用du -sh 路徑的命令可以查看某個(gè)目錄的大小,這里的-s參數(shù)表示顯示總大小。 

  1. # du -sh /etc  
  2. 16M    /etc 

如果使用diskus可直接顯示當(dāng)前目錄的總大小。 

  1. # diskus 

如果你想查看某個(gè)目錄的大小,可以在diskus后面加絕對(duì)路徑。 

  1. # diskus /etc  
  2. 16.66 MB (16,662,528 bytes) 

五、tin-summer

tin-summer(sn)是基于 Rust 語(yǔ)言編寫(xiě)的開(kāi)源工具,也是du命令的替代品,可以用于查找占用磁盤(pán)空間的文件,以更好的輸出、更清晰的命令和默認(rèn)值,而且由于多線程,它甚至可以在計(jì)算大目錄下的大小時(shí)會(huì)比 du 命令運(yùn)行得更快,tin-summer 與 du 命令之間的區(qū)別是前者讀取文件的大小,而后者則讀取磁盤(pán)使用情況。

此外,tin-summer 的開(kāi)發(fā)者也針對(duì) du 和 sn 做了鮮明的使用理由對(duì)比。

使用 du 的理由:

  •  可讀取磁盤(pán)使用情況,而不僅僅是文件大小
  •  可選的取消引用符號(hào)鏈接
  •  可在小目錄上稍微快一點(diǎn)
  •  穩(wěn)定且支持良好

使用 sn 的理由:

  •  在大目錄下更快
  •  使用正則表達(dá)式進(jìn)行排除,使其在與 --exclude 標(biāo)志一起使用時(shí)比 du 快得多。
  •  默認(rèn)為可讀的輸出
  •  彩色輸出
  •  通過(guò)獲得更好的幫助
  •  提供排序輸出
  •  查找構(gòu)建工件
  •  讀取文件大小,而不是磁盤(pán)使用情況
  •  在 Rust 中可擴(kuò)展

同時(shí),也做了基準(zhǔn)測(cè)試,從而來(lái)對(duì)比 sn 和 du 執(zhí)行不同目錄大小的時(shí)間結(jié)果。

Directory Size Tool Command Time
600MB sn sn p 60.74 ms
600MB sn sn d 99.92 ms
600MB du du -hacd2 88.28 ms
4GB sn sn p 185.2 ms
4GB sn sn d 271.9 ms
4GB du du -hacd2 195.5 ms
700MB sn sn p 91.05 ms
700MB sn sn d 176.3 ms
700MB du du -hacd2 153.8 ms
7MB sn sn p 19.48 ms
7MB sn sn d 12.72 ms
7MB du du -hacd2 10.13 ms

安裝 tin-summer: 

  1. # curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git vmchale/tin-summer 

也可以使用cargo軟件包管理器安裝tin-summer,前提是需要在系統(tǒng)上安裝 Rust。如果 Rust 已安裝好的話,可執(zhí)行如下命令: 

  1. # cargo install tin-summer 

如果上述兩種安裝方式都尚未成功安裝 tin-summer,還可以通過(guò) tin-summer GitHub 存儲(chǔ)庫(kù)的發(fā)布區(qū)下載最新版本的二進(jìn)制文件進(jìn)行手動(dòng)安裝。

tin-summer 的使用:

查看當(dāng)前目錄文件大小,無(wú)需添加任何參數(shù),tin-summer 也是默認(rèn)以易讀的格式向用戶(hù)進(jìn)行輸出,可執(zhí)行如下命令:

  1. # sn f 

查看某個(gè)特定目錄的文件大小,可執(zhí)行如下命令: 

  1. # sn f <path-to-the-directory> 

在當(dāng)前目錄中搜索包含構(gòu)建工件的目錄,可執(zhí)行如下命令:

  1. # sn ar 

查找占用超過(guò) 200MB 磁盤(pán)空間的工件或包含工件的目錄,可執(zhí)行如下命令: 

  1. # sn ar -t200M 

獲取 $DIR 中 10 個(gè)最大目錄的排序列表,可執(zhí)行如下命令: 

  1. # sn sort $DIR -n12 

sn 實(shí)際在操作大目錄的時(shí)候速度比較快,在操作小目錄的時(shí)候,速度會(huì)相對(duì)比較慢一些。 

 

責(zé)任編輯:龐桂玉 來(lái)源: 良許Linux
相關(guān)推薦

2022-02-08 08:57:58

命令工具C 語(yǔ)言

2022-03-28 15:51:45

Linuxtop 命令

2018-11-19 10:30:39

du命令Linux

2016-11-28 15:22:24

開(kāi)源管理工具

2014-07-31 10:09:12

Linux命令歸檔工具

2019-10-11 11:36:27

Windowscmd命令行工具

2019-10-10 16:13:55

WindowsLinuxWindows 10

2021-08-25 10:55:43

Linux命令工具

2022-03-11 09:00:51

2020-05-11 08:00:00

監(jiān)控工具加密開(kāi)源

2015-09-16 09:35:10

安全分析安全分析工具安全工具

2015-10-26 09:38:09

免費(fèi)安全分析工具

2011-04-11 11:31:39

Linux加密

2015-12-24 10:10:31

Slack開(kāi)源工具IRC

2021-12-07 07:58:33

工具效率Typora

2011-08-04 14:08:52

Reghance注冊(cè)表編輯器

2012-07-11 09:43:12

2025-01-22 16:13:07

2020-10-13 08:10:33

Exa命令工具

2020-11-12 10:40:37

Kubernetes日志運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)