你真的知道如何查看Linux目錄大小嗎?
前言
本文給大家分享如何在linux系統(tǒng)查看目錄的大小的相關(guān)知識(shí)點(diǎn)及查看技巧。
相信不少朋友是被文章標(biāo)題逼著進(jìn)來看看的,心想著查看linux下的目錄大小命令不就是ls -l嗎?再者人類能夠看懂的就是ls -lh了,難道不是這兩個(gè)命令嗎?
答疑解惑
1、首先咱們就根據(jù)大家所想的,通過ls -lh / 去查看根目錄下的各文件目錄大小,我本機(jī)查看到如下圖所示:
熟悉ls命令的朋友都知道,以上在根目錄下列出的各目錄大小最大的竟然只有8KB,多數(shù)都是4KB,這顯然不是我們所看文件目錄的實(shí)際大小,怎么回事呢?
2、讓我們?cè)俅瓮ㄟ^ls -lh /java_ruanjian/命令查看/java_ruanjian/目錄的大小,如下圖所示:
此時(shí)查看到該目錄下的文件大小是139MB。
為什么是這樣?其實(shí)這里簡(jiǎn)單概括就是:ls -lh能得到普通文件的大小,但對(duì)于目錄得到的4K,那是目錄文件的大小(即目錄本身要占4K),但是不是目錄里所有文件的大小。
linux系統(tǒng)中目錄中保存的僅僅是文件的文件名和文件的inode號(hào),相當(dāng)于保存的是它里面文件的指針,所以系統(tǒng)會(huì)根據(jù)目錄中文件名和inode的數(shù)量分配若干個(gè)block給目錄,而block的大小一般就是4K,如果一個(gè)目錄中文件名太多可能會(huì)分配2個(gè)或多個(gè)block給目錄。
那我們?cè)撊绾稳ゲ榭磍inux文件目錄的實(shí)際大小呢?請(qǐng)繼續(xù)往下看看。
通過du命令查看文件目錄大小
其實(shí)linux系統(tǒng)中可以通過du命令進(jìn)行查看文件目錄的大小。
du:英文為disk usage (磁盤使用量,占用的磁盤空間)。
一個(gè)文件占用的磁盤空間和一個(gè)文件的大小是兩碼事情。占用空間取決于文件系統(tǒng)的塊(block)的大小,linux一般默認(rèn)是4KB,因此,一個(gè)大小為1個(gè)字節(jié)的文件,最小也要占用4K,如果你創(chuàng)建文件系統(tǒng)的時(shí)候制定塊大小是16K,那么即便一個(gè)文件只有1個(gè)字節(jié),占用空間也是16K。
du命令的主要語法如下所示:
- du [-abcDhHklmsSx][-L <符號(hào)連接>][-X <文件>][--block-size][--exclude=<目錄或文件>][--max-depth=<目錄層數(shù)>][--help][--version][目錄或文件]
du命令參數(shù)說明如下:
-a或-all :顯示目錄中個(gè)別文件的大小。
-b或-bytes :顯示目錄或文件大小時(shí),以byte為單位。
-c或--total :除了顯示個(gè)別目錄或文件的大小外,同時(shí)也顯示所有目錄或文件的總和。
-D或--dereference-args :顯示指定符號(hào)連接的源文件大小。
-h或--human-readable :以K,M,G為單位,提高信息的可讀性。
-H或--si :與-h參數(shù)相同,但是K,M,G是以1000為換算單位。
-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ì)。
-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 :顯示版本信息。
看到這一大推參數(shù),大家是不是慌了!別擔(dān)心,今天只挑重點(diǎn)的講,也就是常用的幾個(gè)參數(shù),足以應(yīng)付查看文件目錄大小的參數(shù)。
du命令實(shí)戰(zhàn)講解
以下通過/haodao/linux/test01 文件目錄進(jìn)行常見參數(shù)實(shí)戰(zhàn)講解。
1、查看/haodao/linux/test01目錄的大小,命令如下:
- [root@haodaolinux1 ~]# du -h /haodao/linux/test01
- 50M /haodao/linux/test01
2、查看/haodao目錄下每一個(gè)目錄(包含其子目錄)的大小,命令如下:
- [root@haodaolinux1 ~]# du -h /haodao
- 50M /haodao/linux/test01
- 100M /haodao/linux
- 238M /haodao
3、查看/haodao目錄的大小,僅僅宣示目錄總和,命令如下:
- [root@haodaolinux1 ~]# du -sh /haodao
- 238M /haodao
4、通過--max-depth=<目錄層數(shù)>參數(shù)指定目錄層級(jí)來查找某個(gè)目錄文件大小,命令如下:
- [root@haodaolinux1 ~]# du -h --max-depth=1 /haodao
- 100M /haodao/linux
- 238M /haodao
- [root@haodaolinux1 ~]# du -h --max-depth=2 /haodao
- 50M /haodao/linux/test01
- 100M /haodao/linux
- 238M /haodao
以上命令分別指定/haodao目錄的目錄層級(jí)為1和目錄層級(jí)為2,當(dāng)目錄層級(jí)為1時(shí),只列出/haodao目錄下的文件目錄大小。當(dāng)目錄層級(jí)為2時(shí),則列出/haodao/linux目錄下的文件目錄大小。
結(jié)語
本文通過大家平日容易忽略的一個(gè)知識(shí)點(diǎn)出發(fā),通過具體實(shí)例帶大家查看linux下文件目錄的大小。希望能夠給大家?guī)砉ぷ魃系囊恍┍憬葜帯?nbsp;