理解 Linux 中 ls 的輸出

2021-09-19 19:27:47 字數 2599 閱讀 5774

理解 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

各列的含義

-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)。

後面的值三個一組,*** *** ***。分別對應了 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):

檔案或目錄名/file/directory name

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

Linux中ls的用法

在linux系統中,可以說一切皆檔案。檔案型別包含 普通檔案,目錄,字元裝置檔案,塊裝置檔案,符號鏈結檔案等 我們可以用file這個命令來檢視檔案的屬性 這裡可以看到1.sh是個指令碼檔案 下面開始介紹下ls這個命令的常用的用法 ls的全稱是list,ls預設列出當前目錄下的所有目錄和檔案不包含隱藏...

linux中ls命令詳解

linux中ls命令詳解 ls 命令可以說是linux下最常用的命令之一。a 列出目錄下的所有檔案,包括以 開頭的隱含檔案。b 把檔名中不可輸出的字元用反斜槓加字元編號 就象在c語言裡一樣 的形式列出。c 輸出檔案的 i 節點的修改時間,並以此排序。d 將目錄象檔案一樣顯示,而不是顯示其下的檔案。e...

linux中ls命令詳解

ls命令是linux下最常用的命令。ls命令就是list的縮寫,預設下ls用來列印出當前目錄的清單,如果ls指定其他目錄,那麼就會顯示指定目錄裡的檔案及資料夾清單。通過ls 命令不僅可以檢視linux資料夾包含的檔案,而且可以檢視檔案許可權 包括目錄 資料夾 檔案許可權 檢視目錄資訊等等,ls 命令...