你真的知道如何查看linux目錄大小嗎?

本文給大家分享如何在linux系統查看目錄的大小的相關知識點及查看技巧。

相信不少朋友是被文章標題逼着進來看看的,心想着查看linux下的目錄大小命令不就是ls -l嗎?再者人類能夠看懂的就是ls -lh了,難道不是這兩個命令嗎?

答疑解惑

1、首先咱們就根據大家所想的,通過ls -lh / 去查看根目錄下的各文件目錄大小,我本機查看到如下圖所示:

熟悉ls命令的朋友都知道,以上在根目錄下列出的各目錄大小最大的竟然只有8KB,多數都是4KB,這顯然不是我們所看文件目錄的實際大小,怎麼回事呢?

2、讓我們再次通過ls -lh /java_ruanjian/命令查看/java_ruanjian/目錄的大小,如下圖所示:

此時查看到該目錄下的文件大小是139MB。

爲什麼是這樣?其實這裏簡單概括就是:ls -lh能得到普通文件的大小,但對於目錄得到的4K,那是目錄文件的大小(即目錄本身要佔4K),但是不是目錄裏所有文件的大小。

linux系統中目錄中保存的僅僅是文件的文件名和文件的inode號,相當於保存的是它裏面文件的指針,所以系統會根據目錄中文件名和inode的數量分配若干個block給目錄,而block的大小一般就是4K,如果一個目錄中文件名太多可能會分配2個或多個block給目錄。

那我們該如何去查看linux文件目錄的實際大小呢?請繼續往下看看。

通過du命令查看文件目錄大小

其實linux系統中可以通過du命令進行查看文件目錄的大小。

du:英文爲disk usage (磁盤使用量,佔用的磁盤空間)。

一個文件佔用的磁盤空間和一個文件的大小是兩碼事情。佔用空間取決於文件系統的塊(block)的大小,linux一般默認是4KB,因此,一個大小爲1個字節的文件,最小也要佔用4K,如果你創建文件系統的時候制定塊大小是16K,那麼即便一個文件只有1個字節,佔用空間也是16K。

du命令的主要語法如下所示:

du -abcDhHklmsSx-X <文件>--exclude=<目錄或文件>--help[目錄或文件]

du命令參數說明如下:

-a或-all :顯示目錄中個別文件的大小。

-b或-bytes :顯示目錄或文件大小時,以byte爲單位。

-c或--total :除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和。

-D或--dereference-args :顯示指定符號連接的源文件大小。

-h或--human-readable :以K,M,G爲單位,提高信息的可讀性。

-H或--si :與-h參數相同,但是K,M,G是以1000爲換算單位。

-k或--kilobytes :以1024 bytes爲單位。

-l或--count-links :重複計算硬件連接的文件。

-L<符號連接>或--dereference<符號連接> :顯示選項中所指定符號連接的源文件大小。

-m或--megabytes :以1MB爲單位。

-s或--summarize :僅顯示總計。

-S或--separate-dirs :顯示個別目錄的大小時,並不含其子目錄的大小。

-x或--one-file-xystem :以一開始處理時的文件系統爲準,若遇上其它不同的文件系統目錄則略過。

-X<文件>或--exclude-from=<文件> :在<文件>指定目錄或文件。

--exclude=<目錄或文件> :略過指定的目錄或文件。

--max-depth=<目錄層數> :超過指定層數的目錄後,予以忽略。

--help :顯示幫助。

--version :顯示版本信息。

看到這一大推參數,大家是不是慌了!別擔心,今天只挑重點的講,也就是常用的幾個參數,足以應付查看文件目錄大小的參數。

du命令實戰講解

以下通過/haodao/linux/test01 文件目錄進行常見參數實戰講解。

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=<目錄層數>參數指定目錄層級來查找某個目錄文件大小,命令如下:

[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,當目錄層級爲1時,只列出/haodao目錄下的文件目錄大小。當目錄層級爲2時,則列出/haodao/linux目錄下的文件目錄大小。

結語

本文通過大家平日容易忽略的一個知識點出發,通過具體實例帶大家查看linux下文件目錄的大小。希望能夠給大家帶來工作上的一些便捷之處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章