[Linux小技巧]查看文件夾大小及所屬用戶組


一、linux中查看文件夾大小及所屬用戶組——du和ls命令參數的用法

du命令使用示例:

1> 要顯示一個目錄樹及其每個子樹的磁盤使用情況

du -h /home/linux  

#-h 自動根據大小以k、m、g為單位顯示,提高信息的可讀性。kb、mb、gb是以1024為換算單 位, -h以1000為換算單位;

#若省略/home/linux路徑目錄,則顯示當前目錄的;

du -sh /home/linux

#-s 僅顯示總計,即顯示路徑目錄或當前目錄的總大小。


2>查看當前目錄下所有目錄以及子目錄的大小:

du -h .

#“.”代表當前目錄下。也可以換成一個明確的路徑

#-h表示自動用K、M、G的人性化形式顯示


3>查看當前目錄下user目錄的大小,並不想看其他目錄以及其子目錄:

du -sh user

#-s表示總結的意思,即只列出一個總結的值


du -h –max-depth=0 user

–max-depth=n表示只深入到第n層目錄,此處設置為0,即表示不深入到子目錄。


4>列出user目錄及其子目錄下所有目錄和文件的大小:

du -ah user

#-a表示包括目錄和文件


5>列出當前目錄中的目錄名不包括xyz字符串的目錄的大小:

du -h –exclude=’*xyz*’


6>想在一個屏幕下列出更多的關於user目錄及子目錄大小的信息:

du -0h user

#-0(杠零)表示每列出一個目錄的信息,不換行,而是直接輸出下一個目錄的信息。

=========================================================================

Du命令功能說明:統計目錄(或文件)所占磁盤空間的大小。


語  法:du [-abcDhHklmsSx] [-L <符號連接>][-X <文件>][--block-size][--exclude=<目錄或文件>] [--max-depth=<目錄層數>][--help][--version][目錄或文件]


常用參數:

-a或-all  為每個指定文件顯示磁盤使用情況,或者為目錄中每個文件顯示各自磁盤使用情況。

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

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

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

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

-H或–si 與-h參數相同,但是K,M,G是以1000為換算單位,而不是以1024為換算單位。

-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 顯示版本信息。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

二、ls 命令的含義是list顯 示當前目錄中的文件名字。注意不加參數它顯示除隱藏文件外的所有文件及目錄的名字。

1、ls-lh 查詢當前目錄下文件夾/文件用戶所屬組及權限

[root@localhost mail]# cd /

[root@localhost /]# ls -lh

total 252K

drwxr-xr-x   2 root root 4.0K Apr 20 04:02 bin

drwxr-xr-x   3 root root 4.0K Apr 11 11:50 boot

……

2、文件名顏色的含義

1)默認色代表普通文件。例:install.log

2)綠色代表可執行文件。例:rc.news

3)紅色代表tar包 文件。 例:vim-7.1.tar.bz2

4)藍色代表目錄文件。  例:aa

5)水紅代表圖象文件。  例:Sunset.jpg

6)青色代表鏈接文件。  例:rc4.d     (此類文件相當於快捷方式)

7)黃色代表設備文件。  例:fd0


3、ls命令其他示例:

1)

ls –a(all):表示列出所有的文件,包括以"."開頭的隱藏文件。位於這個列表的起首處的 .. 和 . 依次是指父目錄和你的當前目錄。

2)

[root@localhost ~]# ls -l

總計 152

-rw-r--r-- 1 root root 2915 08-03 06:16 a

-rw------- 1 root root 1086 07-29 18:35 anaconda-ks.cfg

…………………………………………

第1行:總計(total)

Total后面的數字是指當前目錄下所有文件所占用的空間總和。使用ls –lh可查看,也可使用ls –alh查看

第1字段: 文件屬性字段

-rw-r--r-- 1 root root 762 07-29 18:19 exit

文件屬性字段總共有10個字母組成;第一個字符表示文件類型。

-表示該文件是一個普通文件

d表示該文件是一個目錄,字母"d",是dirtectory(目錄)的縮寫

注意:目錄或者是特殊文件,這個特殊文件存放其他文件或目錄的相關信息

l表示該文件是一個鏈接文件。字母"l"是link(鏈接)的縮寫,類似於windows下的快捷方式

b的表示塊設備文件(block),一般置於/dev目錄下,設備文件是普通文件和程序訪問硬件設備的入口,是很特殊的文件。沒有文件大小,只有一個主設備號和一個輔設備號。一次傳輸數據為一整塊的被稱為塊設備,如硬盤、光盤等。最小數據傳輸單位為一個數據塊(通常一個數據塊的大小為512字節)

c表示該文件是一個字符設備文件(character),一般置於/dev目錄下,一次傳輸一個字節的設備被稱為字符設備,如鍵盤、字符終端等,傳輸數據的最小單位為一個字節

p表示該文件為命令管道文件。與shell編程有關的文件

s表示該文件為sock文件。與shell編程有關的文件

鏈接文件分為硬鏈接或符號鏈接兩種。

硬鏈接:多個指向同一文件。硬鏈接文件大小完全相同,如有多個硬鏈接,所鏈接的文件只是一個文件大小。

同一個文件所有的文件都是等價的,操作系統不區分鏈接創建的先后順序,若一個文件存在兩個鏈接,那么除去一個文件還可以通過另外一個文件來訪問該文件,也可以除去創建鏈接時用到的文件,但只要還有一個鏈接存在,就可通過該連接訪問文件。

符號鏈接(軟鏈接):建立一個獨立的文件,這個文件會讓數據的讀取指向它鏈接的文件內容。類似windows快捷方式。

第1字段后9個字母表示該文件或目錄的權限位。

r表是讀 (Read) 、w表示寫 (Write) 、x表示執行 (eXecute)

前三個表示文件擁有者的權限,中間三個表示文件所屬組擁有的權限,最后三個表示其他用戶擁有的權限。

SUID和GUID解析:

s:4;g:2;o:1

4777即rwsrwxrwx。6777即rwsrwsrwx

第2字段:文件硬鏈接數

-rw-r--r-- 1 root root 762 07-29 18:19 exit

如果一個文件不是目錄,此時這一字段表示這個文件所具有的硬鏈接數

第2字段的值為1,說明文件exit只有exit這一個文件名。即只有一個指向該鏈接的硬鏈接。

如果使用ln,做一個指向該文件的硬鏈接再查看該文件,該文件的第2字段就會變成2

[root@localhost ~]# ln exit aexit

[root@localhost ~]# ls -l

總計 160

-rw-r--r-- 2 root root 762 07-29 18:19 aexit

-rw-r--r-- 2 root root 762 07-29 18:19 exit

此時exit 和aexit稱為互為硬鏈接。同指向一個文件,無論是修改哪一個文件,另一個里也做相應的變化,即同一文件的不同文件名

互為硬鏈接的文件具有相同的文件節點。

[root@localhost ~]# ls -i aexit exit

162302 aexit 162302 exit

軟鏈接設置格式:

Ln –s 源文件 目標鏈接文件

# ln -s exit bexit

# ls -l

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

-rw-r--r-- 1 root root 762 07-29 18:19 exit

注意:軟鏈接時文件節點號不一樣;

[root@localhost ~]# ls -i bexit exit

161765 bexit 162302 exit

如果知道一個文件有多個文件名(鏈接文件)如何查找他的其他文件名的路徑?

使用ls -i 獲得其節點號,find查找。

[root@localhost ~]# ls -i /etc/sysconfig/network-scripts/ifcfg-eth0

452946 /etc/sysconfig/network-scripts/ifcfg-eth0       #節點號為 452946

[root@localhost ~]# find /etc -inum 452946

/etc/sysconfig/network-scripts/ifcfg-eth0

第2字段: 鏈接占用的節點

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

該字段文件占用一個節點,屬於軟鏈接(符號鏈接)

如果是目錄,則第2字段表示該目錄所含子目錄的個數

新建空目錄,此目錄的第二字段就是2,表示該目錄下有兩個子目錄。

因為每一個目錄都有一個指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",此默認子目錄是隱藏的。

每次在目錄下新建一個子目錄,該目錄第2字段的值就增1,但是新建一個普通文件該字段值不增加。

第3字段:文件(目錄)擁有者

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

該字段表示該文件擁有者是誰。只有文件的擁有者才具有改動文件屬性的權利。root具有改動任何文件屬性的權利。對於目錄,只有擁有該目錄的用戶,或者具有寫權限的用戶才有在目錄下創建文件的權利。

如果某一用戶被刪除,而該用戶家目錄還存在,ls -l 查看該文件將顯示一個代表用戶存在前ID號的數字。

創建用戶test,將其加入wang用戶組,su切換:

[root@localhost ~]# useradd test

[root@localhost ~]# usermod -g wang test #創建用戶test,並將其加入到用戶組wang中

[root@localhost ~]# su test

[test@localhost root]$ cd /home/test

[test@localhost ~]$ touch testing

[test@localhost ~]$ ls -l testing

-rw-r--r-- 1 test wang 0 08-03 18:02 testing #最后用ls -l 看到第三字段的文件擁有者為test

[test@localhost ~]$ su root                          #刪除用戶test

[root@localhost ~]# userdel test

[root@localhost ~]# cd /home/test #進入test的家目錄,查看剛剛創建的文件testing。

[root@localhost test]# ls -l

總計 4

-rw-r--r-- 1 504 wang 0 08-03 18:02 testing

第三字段變成數字,此數字是原用戶test的ID號。因為文件系統對每個文件記錄文件所有者的ID,而非用戶名。

第4字段:文件(目錄)擁有者所在的組

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

一個用戶可以加入很多個組,但是其中有一個是主組,就是顯示在第4字段的名稱。

useradd -g指定該用戶所在的主組,-G指定其他組

Useradd –g 組名 用戶名

第5字段: 文件所占用的空間(以字節為單位)

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

第5字段表示文件大小,如果是目錄,表示該目錄大小。注意是目錄本身大小,而非目錄及其下面的文件的總大小。

第6字段:文件(目錄)最近訪問(修改)時間

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

可通過touch修改創建時間 # touch exit

把exit創建時間修改當前時間,文件還有最后訪問時間,最后修改時間等屬性。

可以用ls其它參數顯示出來。

第7字段:文件名

lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit

如果是符號鏈接,會有"->"符號,跟着它指向的文件名


=========================================================================

ls(list)

功能說明:列出目錄內容。


語  法:ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <范本樣式>][-T <跳格字數>][-w <每列字符數>][--block-size=<區塊大小>][--color=<使用時機>][--format=<列表格式>][--full-time][--help][--indicator-style=<標注樣式>][--quoting-style=<引號樣式>][--show-control-chars][--sort=<排序方式>][--time=<時間戳記>][--version][文件或目錄...]


補充說明:執行ls指令可列出目錄的內容,包括文件和子目錄的名稱。


參  數:

  -1   每列僅顯示一個文件或目錄名稱。

  -a或--all   下所有文件和目錄。

  -A或--almost-all   顯示所有文件和目錄,但不顯示現行目錄和上層目錄。

  -b或--escape   顯示脫離字符。

  -B或--ignore-backups   忽略備份文件和目錄。

  -c   以更改時間排序,顯示文件和目錄。

  -C   以又上至下,從左到右的直行方式顯示文件和目錄名稱。

  -d或--directory   顯示目錄名稱而非其內容。

  -D或--dired   用Emacs的模式產生文件和目錄列表。

  -f   此參數的效果和同時指定"aU"參數相同,並關閉"lst"參數的效果。

  -F或--classify   在執行文件,目錄,Socket,符號連接,管道名稱后面,各自加上"*","/","=","@","|"號。

  -g   次參數將忽略不予處理。

  -G或--no-group   不顯示群組名稱。

  -h或--human-readable   用"K","M","G"來顯示文件和目錄的大小。

  -H或--si   此參數的效果和指定"-h"參數類似,但計算單位是1000Bytes而非1024Bytes。

  -i或--inode   顯示文件和目錄的inode編號。

  -I<范本樣式>或--ignore=<范本樣式>   不顯示符合范本樣式的文件或目錄名稱。

  -k或--kilobytes   此參數的效果和指定"block-size=1024"參數相同。

  -l   使用詳細格式列表。

  -L或--dereference   如遇到性質為符號連接的文件或目錄,直接列出該連接所指向的原始文件或目錄。

  -m   用","號區隔每個文件和目錄的名稱。

  -n或--numeric-uid-gid   以用戶識別碼和群組識別碼替代其名稱。

  -N或--literal   直接列出文件和目錄名稱,包括控制字符。

  -o   此參數的效果和指定"-l" 參數類似,但不列出群組名稱或識別碼。

  -p或--file-type   此參數的效果和指定"-F"參數類似,但不會在執行文件名稱后面加上"*"號。

  -q或--hide-control-chars   用"?"號取代控制字符,列出文件和目錄名稱。

  -Q或--quote-name   把文件和目錄名稱以""號標示起來。

  -r或--reverse   反向排序。

  -R或--recursive   遞歸處理,將指定目錄下的所有文件及子目錄一並處理。

  -s或--size   顯示文件和目錄的大小,以區塊為單位。

  -S   用文件和目錄的大小排序。

  -t   用文件和目錄的更改時間排序。

  -T<跳格字符>或--tabsize=<跳格字數>   設置跳格字符所對應的空白字符數。

  -u   以最后存取時間排序,顯示文件和目錄。

  -U   列出文件和目錄名稱時不予排序。

  -v   文件和目錄的名稱列表以版本進行排序。

  -w<每列字符數>或--width=<每列字符數>   設置每列的最大字符數。

  -x   以從左到右,由上至下的橫列方式顯示文件和目錄名稱。

  -X   以文件和目錄的最后一個擴展名排序。

  --block-size=<區塊大小>   指定存放文件的區塊大小。

  --color=<列表格式>   培植文件和目錄的列表格式。

  --full-time   列出完整的日期與時間。

  --help   在線幫助。

  --indicator-style=<標注樣式>   在文件和目錄等名稱后面加上標注,易於辨識該名稱所屬的類型。

  --quoting-syte=<引號樣式>   把文件和目錄名稱以指定的引號樣式標示起來。

  --show-control-chars   在文件和目錄列表時,使用控制字符。

  --sort=<排序方式>   配置文件和目錄列表的排序方式。

  --time=<時間戳記>   用指定的時間戳記取代更改時間。

  --version   顯示版本信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM