linux屬性查看-ls,lsattr,file,stat,du

相關鏈接:https://blog.csdn.net/knowledgebao/article/details/84315842


目錄

ls:顯示目錄文件名稱

du:顯示目錄或文件的大小

lsattr:顯示文件或目錄的屬性。

chattr:改變文件或目錄的屬性。

file:辨識文件類型。

stat:以文字的格式來顯示inode的內容。


ls:顯示目錄文件名稱

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

常用命令:

1,ls –a 顯示當前目錄中的所有文件,包含隱藏文件

2,ls –l 顯示文件及其詳細信息,就是我們常用的ll命令(ll是ls -l的別名)。

在這裏,total 10542992表示當前目錄下文件大小總和爲10542992K,不包含子目錄大小。一共顯示7列內容:

  • 第一列:-rw-r--r--. 第一個字符有3種情況:“-”表示普通文件,“d”代表目錄,“l”代表連接文件,“b”代表設備文件。後面的9個字符每3個爲一組,分別代表文件所有者、文件所有者所在用戶組、其它用戶對文件擁有的權限。每組中“r”、“w”、“x”三個字符分別代表讀、寫、執行的權限,若沒有其中的任何一個權限則用“-”表示。執行的權限有兩個字符可選,最常見的一個是“x”代表可執行,另一個是“s”代表套接口文件。9個符號後邊的.是ACL類型,(.)點是ACL_T_SELINUX_ONLY, (+)加是ACL_T_YES,空白是沒有ACL。ACL 是訪問控制列表Access Control List。具體參考:http://www.ibm.com/developerworks/cn/linux/l-acl/。文件或者目錄在創建的時候有默認權限,具體與umask有關。具體在/etc/profile下。可參考https://www.cnblogs.com/qzqdy/p/7997511.html
  • 第二列:緊接着的數字“2”代表這個目錄下的目錄文件數目(這個數目=隱藏目錄數目+普通目錄數目)。(如果這只是一個普通文件,那“2”就代表這個文件有兩個別名,這個文件被人創建了一個硬鏈接文件)
  • 第三列:root代表這個文件(目錄)的屬主(Owner)爲用戶root
  • 第四列:root代表這個文件(目錄)所屬的用戶組(Group)爲組root
  • 第五列:代表文件的大小(字節數),目錄的大小總是爲4096字節。
  • 第六列:Feb  9  2015代表文件(目錄)的修改時間,月 日 年,如果是當天的花,就是月 日 時分。
  • 第七列:文件或目錄名稱。

3,ls -h 顯示文件大小時增加可讀性(例:1K 234M 2G)

4,  ls -t 按最後修改時間排序。

5, ls -S按文件大小排序。(大寫的S)

6, ls -r排序時按倒序。

7, 列出子目錄

  •     ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)
  •     ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)

8, 計算當前目錄下的文件數和目錄數

  •     ls -l * |grep "^-"|wc -l ---- to count files
  •     ls -l * |grep "^d"|wc -l ----- to count dir

9,其他

-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-b 把文件名中不可輸出的字符用反斜槓加字符編號(就象在C語言裏一樣)的形式列出。
-c 輸出文件的 i 節點的修改時間,並以此排序。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-e 輸出時間的全部信息,而不是輸出簡略信息。
-f -U 對輸出的文件不排序。
-g 無用。
-i 輸出文件的 i 節點的索引信息。
-k 以 k 字節的形式表示文件的大小。
-l 列出文件的詳細信息。
-m 橫向輸出文件名,並以“,”作分格符。
-n 用數字的 UID,GID 代替名稱。
-o 顯示文件的除組信息外的詳細信息。
-p -F 在每個文件名後附上一個字符以說明該文件的類型,“*”表示可執行的普通
文件;“/”表示目錄;“@”表示符號鏈接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可輸出的字符。
-r 對目錄反向排序。
-s 在每個文件名後輸出該文件的大小。
-t 以時間排序。
-u 以文件上次被訪問的時間排序。
-x 按列輸出,橫向排序。
-A 顯示除 “.”和“..”外的所有文件。
-B 不輸出以 “~”結尾的備份文件。
-C 按列輸出,縱向排序。
-G 輸出文件的組的信息。
-L 列出鏈接文件名而不是鏈接到的文件。
-N 不限制文件長度。
-Q 把輸出的文件名用雙引號括起來。
-R 列出所有子目錄下的文件。
-S 以文件大小排序。
-X 以文件的擴展名(最後一個 . 後的字符)排序。
-1 一行只輸出一個文件。

--color=no 不顯示彩色文件名
--help 在標準輸出上顯示幫助信息。
--version 在標準輸出上輸出版本信息並退出。

du:顯示目錄或文件的大小

du 參數 文件名,文件名可以模糊匹配,默認當前目錄

1,du -sch * 顯示當前目錄下所有子目錄及文件大小以及總和。

2,du -ah folder顯示目錄下所有文件信息,所有層。可以通過--max-depth=1控制層數

3,du與df的區別:

  • du,disk usage,是通過搜索文件來計算每個文件的大小然後累加,du能看到的文件只是一些當前存在的,沒有被刪除的。他計算的大小就是當前他認爲存在的所有文件大小的累加和。
  • df,disk free,通過文件系統來快速獲取空間大小的信息,當我們刪除一個文件的時候,這個文件不是馬上就在文件系統當中消失了,而是暫時消失了,當所有程序都不用時,纔會根據OS的規則釋放掉已經刪除的文件, df記錄的是通過文件系統獲取到的文件的大小,他比du強的地方就是能夠看到已經刪除的文件,而且計算大小的時候,把這一部分的空間也加上了,更精確了。當文件系統也確定刪除了該文件後,這時候du與df就一致了。

4,其它

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

lsattr:顯示文件或目錄的屬性。

chattr:改變文件或目錄的屬性。

這兩個命令是用來查看和改變文件、目錄屬性的,與chmod這個命令相比,chmod只是改變文件的讀寫、執行權限,更底層的屬性控制是由chattr來改變的。

1,不允許操作指定文件:chattr +i /etc/resolv.conf

2,只運行增加文件內容:chattr +a /home/1.log

chattr命令的用法:chattr [ -RVf ] [ -v version ] [ mode ] files…
最關鍵的是在[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的,這部分是用來控制文件的
屬性。

+ :在原有參數設定基礎上,追加參數。
- :在原有參數設定基礎上,移除參數。
= :更新爲指定參數設定。
A:文件或目錄的 atime (access time)不可被修改(modified), 可以有效預防例如手提電腦磁盤I/O錯誤的發生。
S:硬盤I/O同步選項,功能類似sync。
a:即append,設定該參數後,只能向文件中添加數據,而不能刪除,多用於服務器日誌文件安全,只有root才能設定這個屬性。
c:即compresse,設定文件是否經壓縮後再存儲。讀取時需要經過自動解壓操作。
d:即no dump,設定文件不能成爲dump程序的備份目標。
i:設定文件不能被刪除、改名、設定鏈接關係,同時不能寫入或新增內容。i參數對於文件 系統的安全設置有很大幫助。
j:即journal,設定此參數使得當通過mount參數:data=ordered 或者 data=writeback 掛 載的文件系統,文件在寫入時會先被記錄(在journal中)。如果filesystem被設定參數爲 data=journal,則該參數自動失效。
s:保密性地刪除文件或目錄,即硬盤空間被全部收回。
u:與s相反,當設定爲u時,數據內容其實還存在磁盤中,可以用於undeletion。
各參數選項中常用到的是a和i。a選項強制只可添加不可刪除,多用於日誌系統的安全設定。而i是更爲嚴格的安全設定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE處理能力(標識)的進程能夠施加該選項。

file:辨識文件類型。

通過file指令,我們得以辨識該文件的類型。

  • -b  列出辨識結果時,不顯示文件名稱。
  • -c  詳細顯示指令執行過程,便於排錯或分析程序執行的情形。
  • -f<名稱文件>  指定名稱文件,其內容有一個或多個文件名稱時,讓file依序辨識這些文件,格式爲每列一個文件名稱。
  • -L  直接顯示符號連接所指向的文件的類別。
  • -m<魔法數字文件>  指定魔法數字文件。
  • -v  顯示版本信息。
  • -z  嘗試去解讀壓縮文件的內容。
  • [文件或目錄...] 要確定類型的文件列表,多個文件之間使用空格分開,可以使用shell通配符匹配多個文件。

stat:以文字的格式來顯示inode的內容。

  • 第一行:File:文件名稱。
  • 第二行:Size:文件大小。Blocks:物理塊(Size=Blocks*512物理最小塊)。IO Block:邏輯塊。regular file:類型
  • 第三行:Devide: 設備名稱,Inode:Inode號,Links:硬連接個數
  • 第四行:Access:權限(ls也可查看)。Uid:文件擁有者的User ID。Gid:文件的Group ID
  • 第五行:Context:SELinux,可參考:https://blog.csdn.net/yanjun821126/article/details/80828908
  • 第六行:Access Time:簡寫爲atime,表示文件的訪問時間。當文件內容被訪問時,更新這個時間。
  • 第七行:Modify Time:簡寫爲mtime,表示文件內容的修改時間,當文件的數據內容被修改時,更新這個時間。 
  • 第八行:Change Time:簡寫爲ctime,表示文件的狀態時間,當文件的狀態被修改時,更新這個時間,例如文件的鏈接數,大小,權限,Blocks數。
  • 第九行:Birth:待定

 

參考資料:

1,https://www.cnblogs.com/aijianshi/p/5756346.html

2,https://www.ibm.com/developerworks/cn/linux/l-acl/

3,http://www.runoob.com/linux/linux-comm-du.html

4,https://www.cnblogs.com/kzloser/articles/2673790.html

5, http://c.biancheng.net/linux/file.html

6,https://www.cnblogs.com/klb561/p/9241228.html

 


有任何問題,請聯繫:[email protected]

 

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