du [選項(xiàng)][文件]
10年的平潭網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整平潭建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“平潭網(wǎng)站設(shè)計(jì)”,“平潭網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
顯示每個(gè)文件和目錄的磁盤使用空間。
-a或-all 顯示目錄中個(gè)別文件的大小。
-b或-bytes 顯示目錄或文件大小時(shí),以byte為單位。
-c或--total 除了顯示個(gè)別目錄或文件的大小外,同時(shí)也顯示所有目錄或文件的總和。
-k或--kilobytes 以KB(1024bytes)為單位輸出。
-m或--megabytes 以MB為單位輸出。
-s或--summarize 僅顯示總計(jì),只列出最后加總的值。
-h或--human-readable 以K,M,G為單位,提高信息的可讀性。
-x或--one-file-xystem 以一開始處理時(shí)的文件系統(tǒng)為準(zhǔn),若遇上其它不同的文件系統(tǒng)目錄則略過。
-L符號(hào)鏈接或--dereference符號(hào)鏈接 顯示選項(xiàng)中所指定符號(hào)鏈接的源文件大小。
-S或--separate-dirs 顯示個(gè)別目錄的大小時(shí),并不含其子目錄的大小。
-X文件或--exclude-from=文件 在文件指定目錄或文件。
--exclude=目錄或文件 略過指定的目錄或文件。
-D或--dereference-args 顯示指定符號(hào)鏈接的源文件大小。
-H或--si 與-h參數(shù)相同,但是K,M,G是以1000為換算單位。
-l或--count-links 重復(fù)計(jì)算硬件鏈接的文件。
命令:
du
輸出:
說明:
只顯示當(dāng)前目錄下面的子目錄的目錄大小和當(dāng)前目錄的總的大小,最下面的11536當(dāng)前目錄的總大小。
命令:
du hello.i
輸出:
命令:
du ./process
輸出:
命令:
du -s
輸出:
命令:
du -h
命令:du -ah
命令 du -c hello.i ./use_code
輸出
命令:
du -h |sort -nr|more
輸出:
命令:
du -h --max-depth=1
輸出:
一個(gè)比較經(jīng)典的問題:
如果線上機(jī)器的磁盤占用率超級(jí)高,怎么辦?
這時(shí)候優(yōu)先想到的肯定是,定位到占用磁盤空間最大的那些文件,然后把可以刪的給刪掉。
那么,問題來了,如何定位到占用磁盤空間最大的文件?
一個(gè)辦法是執(zhí)行如下命令:
里面涉及三個(gè)指令:du、sort、more
既然用到了,就順便多了解一下這三個(gè)指令的用法,算是做下個(gè)人筆記。
首先是du
作用:用來查看文件所占用的磁盤情況。
格式:du [選項(xiàng)] [文件]
可用選項(xiàng)(如下為du --help展示的內(nèi)容):
操作示例:
對(duì)幾個(gè)比較常用的選項(xiàng)單獨(dú)拿出來,在機(jī)器上實(shí)際操作,效果如下:
首先,當(dāng)前目錄如下:
du:
其實(shí)吧,從圖里面可以看到,使用“du”的時(shí)候,最后一行就當(dāng)前目錄的磁盤使用總量,所以,感覺一般情況下-c這個(gè)選項(xiàng)并沒有什么用。
du -s:只計(jì)算總量
不過,注意:-s與-a不能同時(shí)存在,會(huì)報(bào)錯(cuò)的。
sort
作用:對(duì)輸出的結(jié)果進(jìn)行排序
可用選項(xiàng):
-r:代表逆序排序
-n:按照字符串?dāng)?shù)值排序
-g:按照常規(guī)數(shù)值排序
-f:忽略字母大小寫
實(shí)測(cè)效果:
首先是測(cè)試文件的原始狀態(tài):
測(cè)試一:sort
可以發(fā)現(xiàn):
空行排在了第一位;
不管數(shù)字有多大,字符串都會(huì)排在數(shù)字的后面;
數(shù)字之間排序的時(shí)候,優(yōu)先考慮首位數(shù)字(感覺是把數(shù)字也當(dāng)成了一個(gè)字符串進(jìn)行排序);
more
作用:用于一頁一頁地展示文件內(nèi)容。
幾個(gè)常用操作:
空格:翻到下一頁
b:翻到上一頁
/:?jiǎn)?dòng)字符串搜索(類似于vim)
此外:
more +n XXX:從XXX文件的第n行開始展示
more -n XXX:展示XXX文件,并且將n行視為一頁,也就是按空格時(shí),只會(huì)顯示后續(xù)的N行
cat
作用:一次性的展示所有文件內(nèi)容
cat有兩個(gè)比較有用的選項(xiàng):
-n:輸出所有行號(hào)
-b:只對(duì)非空行輸出行號(hào)
此外,
cat支持同時(shí)輸出多個(gè)文件的內(nèi)容:cat XXX YYYY ZZZZ
并且,cat可以與more結(jié)合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more
less:
作用:對(duì)文件或者輸出內(nèi)容進(jìn)行分頁展示,并且less可以用于打開多個(gè)文件
常用操作:
j:向上滾動(dòng)一行
k:向下滾動(dòng)一行(類似于vim)
g:跳到第一行
G:跳到最后一行
b:向上翻一頁
空格:翻頁
n%:跳轉(zhuǎn)到整個(gè)文件的n%處
:e :在使用less打開多個(gè)文件時(shí),使用“:e”選擇跳轉(zhuǎn)到其他文件去
/:進(jìn)行字符串搜索
v:?jiǎn)?dòng)編輯
常用選項(xiàng):
-N:在每一行前面都顯示行號(hào)
-m:顯示讀取文件的百分比
-M:顯示讀取文件的百分比、行號(hào)和總行數(shù)
注意:
其他兩個(gè)比較簡(jiǎn)單的指令:
head:顯示一個(gè)文件的前N行
用法:head -n 行數(shù) 文件名
tail:顯示一個(gè)文件的最后N行
用法:tail -n 行數(shù) 文件名
不過,使用tai的時(shí)候,因?yàn)?f選項(xiàng)可以自動(dòng)顯示新增加的內(nèi)容,所以經(jīng)常會(huì)使用如下方式:
tail -f 文件名
du是統(tǒng)計(jì)目錄或文件所占磁盤空間大小的命令。
我們?cè)诮y(tǒng)計(jì)目錄時(shí),不是想看父目錄下的子目錄名和子文件名到底占用了多少空間,而是想看父目錄下的子目錄和子文件的總磁盤占用量大小,這時(shí)就需要使用 du
命令才能統(tǒng)計(jì)目錄的真正磁盤占用量大小。
du命令的格式如下:
du [選項(xiàng)] [目錄或文件名]
選項(xiàng):
-a:顯示每個(gè)子文件的磁盤占用量。默認(rèn)只統(tǒng)計(jì)子目錄的磁盤占用量
-h:使用習(xí)慣單位顯示磁盤占用量,如KB、MB或GB等;
-s:統(tǒng)計(jì)總磁盤占用量,而不列出子目錄和子文件的磁盤占用量
通過命令du -h –max-depth=1 *,可以查看當(dāng)前目錄下各文件、文件夾的大小,這個(gè)比較實(shí)用。
查詢當(dāng)前目錄總大小可以使用du -sh,其中s代表統(tǒng)計(jì)匯總的意思,即只輸出一個(gè)總和大小。
通過命令du -h –max-depth=0 *,可以只顯示直接子目錄文件及文件夾大小統(tǒng)計(jì)值。
如果只想查看指定目錄的總大小,可以使用du -sh 目錄名稱。
對(duì)于指定文件夾也可以指定顯示層次深度,如du -h --max-depth=0 software/及du -h --max-depth=1
software/
使用du命令和df命令去統(tǒng)計(jì)分區(qū)的使用情況時(shí),得到的數(shù)據(jù)是不一樣的。那是因?yàn)閐f命令是從文件系統(tǒng)的角度考慮的,通過文件系統(tǒng)中未分配的空間來確定文件系統(tǒng)中已經(jīng)分配的空間大小。也就是說,在使用df命令統(tǒng)計(jì)分區(qū)時(shí),不僅要考慮文件占用的空間,還要統(tǒng)計(jì)被命令或程序占用的空間(最常見的就是文件已經(jīng)刪除,但是程序并沒有釋放空間)。
而du命令是面向文件的,只會(huì)計(jì)算文件或目錄占用的磁盤空間。也就是說,df命令統(tǒng)計(jì)的分區(qū)更準(zhǔn)確,是真正的空閑空間。
du [-abcDhHklmsSx] [-L 符號(hào)連接][-X 文件][--block-size][--exclude=目錄或文件] [--max-depth=目錄層數(shù)][--help][--version][目錄或文件]
常用參數(shù):
-a或-all 為每個(gè)指定文件顯示磁盤使用情況,或者為目錄中每個(gè)文件顯示各自磁盤使用情況。
-b或-bytes 顯示目錄或文件大小時(shí),以byte為單位。
-c或–total 除了顯示目錄或文件的大小外,同時(shí)也顯示所有目錄或文件的總和。
-D或–dereference-args 顯示指定符號(hào)連接的源文件大小。
-h或–human-readable 以K,M,G為單位,提高信息的可讀性。
-H或–si 與-h參數(shù)相同,但是K,M,G是以1000為換算單位,而不是以1024為換算單位。
-k或–kilobytes 以1024 bytes為單位。
-l或–count-links 重復(fù)計(jì)算硬件連接的文件。
-L符號(hào)連接或–dereference符號(hào)連接 顯示選項(xiàng)中所指定符號(hào)連接的源文件大小。
-m或–megabytes 以1MB為單位。
-s或–summarize 僅顯示總計(jì),即當(dāng)前目錄的大小。
-S或–separate-dirs 顯示每個(gè)目錄的大小時(shí),并不含其子目錄的大小。
-x或–one-file-xystem 以一開始處理時(shí)的文件系統(tǒng)為準(zhǔn),若遇上其它不同的文件系統(tǒng)目錄則略過。
-X文件或–exclude-from=文件 在文件指定目錄或文件。
–exclude=目錄或文件 略過指定的目錄或文件。
–max-depth=目錄層數(shù) 超過指定層數(shù)的目錄后,予以忽略。
–help 顯示幫助。
–version 顯示版本信息。
1 要顯示一個(gè)目錄樹及其每個(gè)子樹的磁盤使用情況
du /home/linux
這在/home/linux目錄及其每個(gè)子目錄中顯示了磁盤塊數(shù)。
2 要通過以1024字節(jié)為單位顯示一個(gè)目錄樹及其每個(gè)子樹的磁盤使用情況
du -k /home/linux
這在/home/linux目錄及其每個(gè)子目錄中顯示了 1024 字節(jié)磁盤塊數(shù)。
3 以MB為單位顯示一個(gè)目錄樹及其每個(gè)子樹的磁盤使用情況
du -m /home/linux
這在/home/linux目錄及其每個(gè)子目錄中顯示了 MB 磁盤塊數(shù)。
4 以GB為單位顯示一個(gè)目錄樹及其每個(gè)子樹的磁盤使用情況
du -g /home/linux
這在/home/linux目錄及其每個(gè)子目錄中顯示了 GB 磁盤塊數(shù)。
5查看當(dāng)前目錄下所有目錄以及子目錄的大?。?/p>
du -h .
“.”代表當(dāng)前目錄下。也可以換成一個(gè)明確的路徑
-h表示用K、M、G的人性化形式顯示
6查看當(dāng)前目錄下user目錄的大小,并不想看其他目錄以及其子目錄:
du -sh user
-s表示總結(jié)的意思,即只列出一個(gè)總結(jié)的值
du -h --max-depth=0 user
--max-depth=n表示只深入到第n層目錄,此處設(shè)置為0,即表示不深入到子目錄。
7列出user目錄及其子目錄下所有目錄和文件的大?。?/p>
du -ah user
-a表示包括目錄和文件
8列出當(dāng)前目錄中的目錄名不包括xyz字符串的目錄的大?。?/p>
du -h --exclude='*xyz*'
9想在一個(gè)屏幕下列出更多的關(guān)于user目錄及子目錄大小的信息:
du -0h user
-0(杠零)表示每列出一個(gè)目錄的信息,不換行,而是直接輸出下一個(gè)目錄的信息。
10只顯示一個(gè)目錄樹的全部磁盤使用情況
du -s /home/linux
11查看各文件夾大小:du -h --max-depth=1
統(tǒng)計(jì)目錄中的文件的大小并以列表顯示: du [Path] -a 全部文件 包括隱藏的。 -h 以M 為單位顯示文件大小結(jié)果。 -s 統(tǒng)計(jì)此目錄中所有文件大小總和。 .. 這些是常用的 e.g.: du -sh du -ah