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