天天看點

了解 Linux 中 `ls` 的輸出

了解 Linux 中

ls

的輸出

ls 的輸出會因各 Linux 版本變種而略有差異,這裡隻讨論一般情況下的輸出。

下面是來自 man page 關于 ls 的描述:

$ man ls

ls - list directory contents           

列出檔案夾中的内容。

但一般我們會配合着 -l 參數使用,将輸出展示成清單形式。

在 ls 的 man page 中搜尋 -l 可看到該參數的意義:

-l     use a long listing format           

清單形式下看到的輸出大概成這樣:

-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe

各列的含義

?UUUGGGOOOS 00 UUUUUU GGGGGG #### ^-- 修改日期及檔案或檔案夾名

^ ^ ^ ^ ^ ^ ^ ^ ^

| | | | | | | | --- 檔案大小,機關為位元組(byte)

| | | | | | | -------- 所有者所處的分組

| | | | | | --------------- 所有者名稱

| | | | | ---------------------- 包含的項目(item)數量

| | | | --------------------------- 額外的權限(

.

+

s

等,為空表示沒有)

| --------------------------------- 分别對應 [U]ser, [G]roup, and [O]thers 三種賬戶的讀,寫,可執行權限

------------------------------------- 辨別檔案類型

檔案權限/file permissions

包含三部分:

第一位辨別檔案類型,

-:檔案。

d:檔案夾(directory)。

l:軟鍊(symlink)。

後面的值三個一組,xxx xxx xxx。分别對應了 user,group 與 other 的權限。其中每一組包含三位,每一位則表示具體的讀寫及可執行權限,如果是字母表示有該權限, - 表示沒有相應的權限。

r:讀取權限/readable。

w:寫入權限/writable。

x:可執行權限/executable,即将檔案作為可執行檔案運作。

最後位可選,表示還有額外的權限控制,如果沒有則為空,參見這裡的解釋。

其中,

user 即檔案所屬的使用者,它的所有者,也可了解成其建立者,如果該檔案沒有被修改過權限的話。

group 即使用者所屬的分組。

other 表示既不是主人也不屬于 user 所處的分組的其他任何身份。

是以連起來的話,-rwxrw-r-- 表示該項是個檔案,其所有者擁有全部三種權限(rwx),和所有者同在一個分組下的使用者沒有可執行的權限(rw-),其他使用者隻讀(r--)。

Tips: 系統會為檔案預設賦予權限,但可通過 chmod (change mode)指令來手動改變檔案的權限。

one more thing

有趣的是,權限除了使用 rwx 字母的方式表示,還可使用八進制(octal)數字來表示。

0:無權限 -

1:可執行 x

2:寫權限 w

3:可寫和可執行 wx

4:讀權限 r

5:可讀可執行 rx

6:讀寫 rw

7:讀寫及可執行 rwx

數字形式的權限通常用于 chmod 指令,友善修改檔案的權限。比如将檔案設定對使用者有全部權限(對應數字 7),分組可讀可執行(5),其他隻讀(4):

$ chmod 754 somefile.js

你當然還是可以使用字母的方式來進行設定的,

$ chmod u=rwx,g=rx,o=r somefile.js

細心的你可能發現了,無論哪種權限組合,都可以通過三種其他的權限其數字相加而得到,

比如 7 表示讀寫及可執行,7 = 4(讀) + 2 (寫) + 1 (可執行)

再比如隻讀權限 4 = 4(讀) + 0 (寫) + 0 (可執行)

這便是其設計其妙之處,是以你應該了解為何 0~7 對應的是上面列出的權限。友善之處在于,隻需要記住 4,2,1 分别對應讀,寫,可執行。其他權限通過相加計算即可。

連結數量/number of links

表示包含的項目數量。如果該項是檔案,則無疑是 1。如果該項是檔案夾,表示檔案夾下還包含多少個檔案或檔案夾。

所屬使用者/owner name

檔案的所有者。

所屬分組/owner group

所有者所處的分組名。

檔案大小/file size

檔案或檔案夾的大小,機關為位元組(byte)。通過參數可配置輸出為更加容易了解的形式,比如 -h (--human-readable):

-rw-rw-r-- 1 liuwayong liuwayong 1.6K Mar 30 18:18 app.js

修改日期/time of last modification

最後的修改日期。

檔案或目錄名/file/directory name

檔案或檔案夾的名稱。如果是軟連結,會顯示出其所指向的位置。

lrwxrwxrwx 1 root root 16 Aug 2 2018 videodata -> /data/videodata/

相關資料

What do the fields in ls -al output mean?

'+' and 's' in permission strings

What is the default size unit in linux ls -l command

The Chmod Command and Linux File Permissions Explained

原文位址

https://www.cnblogs.com/Wayou/p/understanding_output_of_linux_ls.html

繼續閱讀