指令釋義
ls 指令可以說是Linux下最常用的指令之一。它有許多的選項,下面列出了 ls 指令的絕大多數選項。
List information about the FILEs (the current directory by default).Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
用法:ls [選項]... [檔案]...
運用舉例:
1.列出具體檔案 #ls -al //這個最常用,可是往往又不徹底符合要求,
2.列出一切子目錄的檔案:#ls -R //上個指令僅僅列出了本目錄下的一切目錄和檔案,可是目錄下的檔案不會循環的列出。
3.若是檔案過多一屏看不完,怎么辦?並且,關於想找到許多檔案中的某個檔案的姓名。
3.1分屏顯現:#ls -l|more //能在當時屏退出,很有用,但不能一頁一頁翻屏
#ls -l|less //能用pgup,pgdw 翻頁,但不能在當時方位退出
3.2橫向輸出儘可能多的顯現檔案姓名:
#ls -m
-a 列出目錄下的一切檔案,包含以 . 最初的隱含檔案。//常用
-m 橫向輸出檔案名稱,並以“,”作分格符。
-c 輸出檔案的 i 節點的修正時刻,並以此排序。
-R 列出一切子目錄下的檔案。
-l 列出檔案的具體信息。
-s 在每個檔案名稱後輸出該檔案的巨細。
-k 以 k 位元組的方式表明檔案的巨細。
-i 輸出檔案的 i 節點的索引信息。
2.只顯現目錄:#ls -l |grep ^d 3.只顯現非目錄檔案:#ls -l |grep ^[^d]
3.對輸出檔案進行各種排序;
3.1 依照字元序(default): #ls -l
3.2 依照修正時刻排序: #ls -t //近來修正在最上面
3.3 逆排序 : #ls -r
3.4 按檔案巨細排序 :#ls -S //大檔案的在上
3.5 依照檔案擴展名(最終一個.後的字元)排序: #ls -X
3.6 按數字排序 :#ls -lv
-t 以時刻排序。
-r 對目錄反向排序
-f -U 對輸出的檔案不排序。
-X 以檔案的擴展名(最終一個 . 後的字元)排序。
-S 以檔案巨細排序。
-u 以檔案前次被拜訪的時刻排序。
-n 用數字的 UID,GID 替代稱號。
-o 顯現檔案的除組信息外的具體信息。
-p -F 在每個檔案名稱後附上一個字元以闡明該檔案的類型,“*”表明可執行的一般
檔案;“/”表明目錄;“@”表明符號連線;“|”表明FIFOs;“=”表明套接字(sockets)。
-q 用?替代不行輸出的字元。
-x 按列輸出,橫向排序。
暫時無用選項:
-b 把檔案名稱中不可輸出的字元用反斜槓加字元編號(就象在C言語裡相同)的方式列出。//不常用
-d 將目錄象檔案相同顯現,而不是顯現其下的檔案。
-e 輸出時刻的悉數信息,而不是輸出簡略信息。 //沒用
-g 無用。
-A 顯現除 “.”和“..”外的一切檔案。
-B 不輸出以 “~”結束的備份檔案。
-C 按列輸出,縱向排序。
-G 輸出檔案的組的信息。
-L 列出連線檔案名稱而不是連線到的檔案。
-N 不約束檔案長度。
-Q 把輸出的檔案名稱用雙引號括起來。
-1 一行只輸出一個檔案。
--color=no 不顯現五顏六色檔案名稱
--help 在規範輸出上顯現協助信息。
--version 在規範輸出上輸出版別信息並退出
描述
ls 命令將每個由 Directory 參數指定的目錄或者每個由 File 參數指定的名稱寫到標準輸出,以及您所要求的和標誌一起的其它信息。如果不指定 File 或 Directory 參數, ls 命令顯示當前目錄的內容。
在互斥對中指定多個選項不看成錯誤。每對中最後一個指定的選項確定輸出格式。
預設情況下,ls 命令按照檔案名稱的字母順序顯示所有信息。整理順序由環境變數 LANG 或 LC_COLLATE 環境變數確定。在 AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 "National Language Support Overview for Programming" 包含更多細節。
當 ls 命令顯示目錄內容時,它不顯示名稱以 .(點)開頭的檔案項,除非使用了 -a 或者 -A 標誌。如果命令由 root 用戶執行,它預設使用 -A 標誌。
格式化輸出有三種主要方式:
* 每行列出一項。
* 通過指定 -C 或 -x 標誌以多列列出各項。當向 tty 輸出時,-C 標誌是預設格式。如果檔案或目錄名太長,ls 命令顯示單列輸出。
* 通過指定 -m 標誌可以以逗號分隔系列列出項。
要確定輸出行中字元位置的數目,ls 命令使用環境變數 COLUMNS。如果沒有設定此變數,命令獲取顯示的當前列值。如果使用這些方法,ls 命令還不能確定字元位置的數量,它就使用預設值 80。
使用 -e 和 -l 標誌所顯示的方式解釋如下:
如果第一個字元是:
d 此項為目錄。
b 此項為塊特殊檔案。
c 此項為字元特殊檔案。
l 此項為符號連結,或者指定 -N 標誌,或者符號連結不指向現有檔案。
p 此項為一個先進先出(FIFO)特殊檔案。
s 此項為本地套接字。
- 此項為普通檔案。
接下來的 9 個字元被分成 3 個集合,每個集合 3 個字元。第一組 3 字元集合顯示所有者許可權。下一組 3 字元集合顯示了組中其它用戶的許可權。最後 3 字元集合顯示了訪問此檔案的其它任何人的許可權。每個集合中的三個字元各自表示了檔案的讀、寫和執行許可權。目錄的執行許可權讓您可以搜尋目錄中的指定檔案。
許可權表示
如下:
r 讀
w 寫(編輯)
x 執行(搜尋)
- 沒有授予相應的許可權
如果檔案有 set-group-ID 方式,那么組執行許可權字元是 s。如果檔案有 set-user-ID 方式,則用戶執行許可權字元是 s。如果方式位被設定為 01000(八進制)(請參閱 chmod 命令以獲得此方式的含義),最後一個方式字元(通常 x 或者 -)是 T。如果沒有設定相應的執行許可權,set-ID 的指示和方式位 01000 以大寫字母開頭(分別為 S 和 T)。方式 t 表示粘滯位是為檔案或目錄而設定的。
當使用 -e 標誌時,其顯示方式與使用 -l 標誌一樣,除了多出了第 11 個字元,其解釋如下:
+ 表示檔案有擴展安全性信息。例如,檔案可能在方式中有擴展的 ACL、TCB 或者 TP 屬性。
通過使用 aclget 命令,可以顯示檔案的訪問控制信息(ACL)。通過使用 chtcb 命令,可以顯示 TCB 和 TP 屬性的值。
- 表示檔案沒有擴展安全性信息。
當列出目錄中檔案大小時,ls 命令顯示塊總數,包括間接塊。
標誌
-A 列出所有條目,除了 .(點)和 ..(點-點)。
-a 列出目錄中所有項,包括以 .(點)開始的項。
-b 以八進制 ( \nnn) 表示法顯示非列印字元。
-c 使用索引節點最近一次修改的時間,用以排序(當帶 -t 標誌使用時)或者用以顯示(當帶 -l 標誌使用時)。該標誌必須和 -t 或 -l 標誌或者兩者一起使用。
-C 以多列縱向排序輸出。當往終端輸出時,此為預設方法。
-d 僅僅顯示指定目錄信息。目錄和檔案一樣處理,這在當使用 -l 標誌獲取目錄狀態時非常有用。
-e 顯示方式(包括安全信息)、連結數目、所有者、組、大小(按位元組)、最近修改時間和每個檔案名稱稱。如果檔案是特殊檔案,大小欄位包含主要和次要設備數目。如果檔案是符號連結,會列印所連結到的檔案的路徑名,其前有 ->(減號,大於號)符號。顯示符號連結的屬性。
-E 列出檔案的保留空間、固定範圍大小和範圍分配標誌信息。使用該標誌時,必須指定 -l 標誌。
-f 在每個存儲槽中列出 Directory 參數指定的每個目錄的名稱。該標誌關閉 -l、-t、 -s 和 -r 標誌並且開啟 -a 標誌。列表的順序就是項出現在目錄中的順序。
-F 如果檔案是目錄,在檔案名稱後面放置一個 /(斜槓),如果檔案可執行,則放置一個 *(星號),如果檔案為套接字,則放置一個 =(等號),如果為 FIFO,則放置一個 |(管道)符號,如果是符號連結,則放置一個 @。
註:只有在使用 -N 標誌或者連結指向一個不存在的檔案時,符號連結顯示時才後跟 ->。否則,顯示目標檔案的有關信息。通過輸入 ls -f 命令,也可以調用此選項。
-g 與使用 -l 標誌時顯示同樣的信息,除了 -g 標誌禁止顯示所有者和符號連結信息。
-H 如果在命令行上指定了引用類型目錄檔案的符號連結,ls 命令將檔案信息和檔案類型估計為由連結引用的檔案的信息和類型,而非連結本身;然而,ls 命令將寫連結本身的名稱,而非由連結引用的檔案。
-i 顯示每個檔案報告第一列中的索引節點數目。
-L 列出連結引用的檔案或目錄內容。此為預設操作。後跟符號連結。如果使用 -l 選項,-N 選項就成為預設值,不後跟符號連結。當使用 -l 選項時,僅有 -L 選項能夠覆蓋 -N 預設值。
-l (L 的小寫)顯示方式、連結數目、所有者、組、大小(按位元組)和每個檔案最近一次修改時間。如果檔案是特殊檔案,大小欄位包含主要和次要設備數目。如果最近一次修改時間大於六個月之前,時間欄位以 月份 日期 年份 的格式顯示,然而六個月內修改的檔案以 月份 日期 時間 的格式顯示。
如果檔案是符號連結,,列印所連結到的檔案的路徑名,其前跟 ->。顯示符號連結的屬性。-n、-g、和 -o 標誌覆蓋 -l 標誌。
注意事項
1. 符號連結檔案後跟一個箭頭,然後是符號連結的內容。
2. 當使用 -l 選項時,通過執行 mkpasswd 命令,可以提高 ls 命令的執行性能。當目錄包含不同用戶擁有的檔案時,這非常有用,比如 /tmp 目錄。
-m 使用流輸出格式(逗號分隔系列)。
-n -n 標誌除顯示用戶和組 ID 而不是用戶和組名稱以外,它顯示和 -l 標誌同樣的信息。
-N 當確定檔案狀態時,不跟在符號連結之後。
註:如果使用 -L 和 -N 兩個標誌,最後一個標誌起作用。同樣的,任何時候給定一個包含以 /(斜槓)作為最後字元的符號連結,不管使用何種選項,後面都會跟有連結。
-o -o 標誌除禁止顯示組和符號連結信息之外,它顯示和 -l 標誌同樣的信息。
-p 如果檔案是目錄,在每個檔案名稱後面放置一個斜槓。當將 ls 命令的輸出通過管道傳遞到 pr 命令時,這很有用,如下所示:
ls -p | pr -5 -t -w80
-q 將檔案名稱中的非列印字元顯示成 ?(問號)。
-r 反轉排序順序,適當的按字母逆向排序或者首先排序最舊的檔案。
-R 遞歸列出所有子目錄。
-s 按照千位元組(包括間接塊)給出每一項的大小。
-t 按照最近一次修改時間(最近的最先)而不是名稱排序。
-u 使用最近訪問時間,而不是最近修改時間用以排序(當使用 -t 標誌)或者顯示(當使用 -l 標誌)。如果不和 -t 或 -l 標誌或兩者一起使用,則該標誌無效。
-x 以多列格式橫向排序輸出。
-1 強制輸出為每行一項格式。當輸出沒有定向到終端時,此為預設值。
退出狀態
此命令返回以下退出值:
0 寫所有檔案成功。
>0 產生錯誤。
示例
1. 要列出當前目錄中的所有檔案,請輸入:
ls -a
列出所有檔案,包括 .(點)、..(點點)和其他以點開頭的檔案。
2. 要顯示詳細信息,請輸入:
ls -l chap1 .profile
顯示一個長列表,包括關於 chap1 和 .profile 的詳細信息。
3. 要顯示有關目錄的詳細信息,請輸入:
ls -d -l . manual manual/chap1
顯示目錄 . 和 manual 以及檔案 manual/chap1 的長列表。不使用 -d 標誌時,會列出 . 和 manual 目錄中的所有檔案,而不是關於目錄本身的詳細信息。
4. 要按照修改時間列出檔案,請輸入:
ls -l -t
顯示最近被修改檔案的長列表,較舊的檔案跟在後面。
檔案
/usr/bin/ls 包含 ls 命令。
/etc/passwd 包含用戶 ID。
/etc/group 包含組 ID。
/usr/share/lib/terminfo/* 包含終端信息。