NAME¶
ls, dir, vdir - 列目錄內容
ls [選項] [檔名...]
POSIX 標準選項:
[-CFRacdilqrtu1]
GNU 選項 (短格式):¶
[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I
pattern] [--full-time]
[--format={long,verbose,commas,across,vertical,single-column}]
[--sort={none,time,size,extension}]
[--time={atime,access,use,ctime,status}]
[--color[={none,auto,always}]] [--help] [--version]
[--]
描述( DESCRIPTION )¶
程式ls先列出非目錄的檔案項,然後是每一個目錄中的“可顯示”檔案。如果
沒有選項之外的參數【譯注:即檔名部分為空】出現,預設為
"." (當前目錄)。
選項“ -d
”使得目錄與非目錄項同樣對待。除非“
-a ” 選項出現,文
件名以“.”開始的檔案不屬“可顯示”檔案。
以當前目錄為準,每一組檔案(包括非目錄檔案項,以及每一內含檔案的目錄)分
別按檔名比較順序排序。如果“
-l
”選項存在,每組檔案前顯示一摘要行:
給出該組檔案長度之和(以
512 字節為單位)。
輸出是到標準輸出( stdout
)。除非以“ -C
”選項要求按多列輸出,輸出
將是一行一個。然而,輸出到終端時,單列輸出或多列輸出是不確定的。可以分別
用選項“ -1 ” 或“ -C
”來強制按單列或多列輸出。
- -C
- 多列輸出,縱向排序。
- -F
- 每個目錄名加“ /
”延伸檔名,每個 FIFO
名加“ | ”延伸檔名,
每個可運行名加“ *
”延伸檔名。
- -R
- 遞歸列出遇到的子目錄。
- -a
- 列出所有檔案,包括以
"."
開頭的隱含檔案。
- -c
- 使用“狀態改變時間”代替“檔案修改時間”為依據來排序
(使用“ -t
”選項時)或列出(使用“
-l ”選項時)。
- -d
- 將目錄名像其它檔案一樣列出,而不是列出它們的內容。
- -i
- 輸出檔案前先輸出檔案系列號(即
i 節點號: i-node number)。 -l
列出(以單列格式)檔案模式(
file mode ),檔案的鏈
接數,所有者名,組名,檔案大小(以字節為單位),時間信
息,及檔名。預設時,時間信息顯示最近修改時間;可以以
選項“ -c ”和“ -u
”選擇顯示其它兩種時間信息。對於設
備檔案,原先顯示檔案大小的區域通常顯示的是主要和次要的
號(majorand minor device numbers)。
- -q
- 將檔名中的非列印字符輸出為問號。(對於到終端的輸出這是預設的。)
- -r
- 逆序排列。
- -t
- 按時間信息排序。
- -u
- 使用最近訪問時間代替最近修改時間為依據來排序(使用
“ -t
”選項時)或列出(使用“
-l ”選項時)。
- -1 單列輸出。
GNU 細節¶
如果標準輸出是終端,將多列輸出(縱向排序)。
- dir (
也被安裝為命令 d )
等同於“ ls -C
”;即,檔案
- 預設是多列輸出,縱向排序。vdir
( 也被安裝為命令 v )
等同於“ ls -l ”;
即,檔案預設是按長格式輸出。
GNU 選項¶
-1, --format=single-column
一行輸出一個檔案(單列輸出)。如標準輸出不是到終端,
此選項就是預設選項。
- -a, --all
- 列出目錄中所有檔案,包括以“.”開頭的檔案。
- -b, --escape
- 把檔名中不可輸出的字符用反斜槓加字符編號(就像在
C
語言裏一樣)的形式列出。
- -c, --time=ctime, --time=status
- 按檔案狀態改變時間(i節點中的ctime)排序並輸出目錄內
容。如採用長格式輸出(選項“-l”),使用檔案的狀態改
變時間取代檔案修改時間。【譯注:所謂檔案狀態改變(i節
點中以ctime標誌),既包括檔案被修改,又包括檔案屬性(
如所有者、組、鏈接數等等)的變化】
- -d, --directory
- 將目錄名像其它檔案一樣列出,而不是列出它們的內容。
- -f
- 不排序目錄內容;按它們在磁碟上存儲的順序列出。同時啟
動“ -a
”選項,如果在“ -f
”之前存在“ -l ”、“ -
-color ”或“ -s
”,則禁止它們。
- -g
忽略,為相容UNIX用。
- -i, --inode
- 在每個檔案左邊列印
i
節點號(也叫檔案序列號和索引號:
file serial number and index
number)。i節點號在每個特定的檔案系統中是唯一的。
- -k, --kilobytes
- 如列出檔案大小,則以千字節KB為單位。
- -l, --format=long, --format=verbose
- 除每個檔名外,增加顯示檔案類型、權限、硬鏈接數、所
有者名、組名、大小(
byte
)、及時間信息(如未指明是
其它時間即指修改時間)。對於6個月以上的檔案或超出未來
1
小時的檔案,時間信息中的時分將被年代取代。
每個目錄列出前,有一行“總塊數”顯示目錄下全部檔案所
佔的磁碟空間。塊預設是
1024 字節;如果設置了
POSIXLY_CORRECT
的環境變量,除非用“
-k
”選項,則預設塊大小是
512 字
節。每一個硬鏈接都計入總塊數(因此可能重復計數),這無
疑是個缺點。
- 列出的權限類似於以符號表示(檔案)模式的規範。但是
ls
- 在每套權限的第三個字符中結合了多位(
multiple bits )
的信息,如下: s
如果設置了 setuid 位或 setgid
位,而且也設置了相應的可執行位。
S 如果設置了 setuid 位或 setgid
位,但是沒有設置相應的可執行位。
t 如果設置了 sticky
位,而且也設置了相應的可執行位。
T 如果設置了 sticky
位,但是沒有設置相應的可執行位。
x
如果僅僅設置了可執行位而非以上四種情況。
-
其它情況(即可執行位未設置)。
- -m, --format=commas
- 水平列出檔案,每行盡可能多,相互用逗號和一個空格分隔。
- -n, --numeric-uid-gid
- 列出數字化的 UID
和 GID
而不是使用者名和組名。
- -o
- 以長格式列出目錄內容,但是不顯示組信息。等於使用“
--format=long --no-group
”選項。提供此選項是為了與其它版本的
ls 相容。
- -p
- 在每個檔名後附上一個字符以說明該檔案的類型。類似“
-F ”選項但是不
標示可執行檔案。
- -q, --hide-control-chars
- 用問號代替檔名中非列印的字符。這是預設選項。
- -r, --reverse
- 逆序排列目錄內容。
- -s, --size
- 在每個檔名左側輸出該檔案的大小,以
1024
字節的塊為單位。如果設置了
POSIXLY_CORRECT
的環境變量,除非用“
-k ”選項,塊大小是 512
字節。
- -t, --sort=time
- 按檔案最近修改時間(
i 節點中的 mtime
)而不是按檔案名字典序排序,新檔案
靠前。
- -u, --time=atime, --time=access, --time=use
- 類似選項“ -t
”,但是用檔案最近訪問時間(
i 節點中的 atime
)取代檔案修
改時間。如果使用長格式列出,列印的時間是最近訪問時間。
- -w, --width cols
- 假定螢幕寬度是
cols ( cols
以實際數字取代)列。如未用此選項,預設值是這
樣獲得的:如可能先嘗試取自終端驅動,否則嘗試取自環境變量
COLUMNS (如果設
置了的話),都不行則取
80 。
- -x, --format=across, --format=horizontal
- 多列輸出,橫向排序。
- -A, --almost-all
- 顯示除 "." 和
".."
外的所有檔案。
- -B, --ignore-backups
- 不輸出以“ ~
”結尾的備份檔案,除非已經在命令行中給出。
- -C, --format=vertical
- 多列輸出,縱向排序。當標準輸出是終端時這是預設項。使用命令名
dir 和 d 時,
則總是預設的。
- -D, --dired
- 當採用長格式(“
-l
”選項)輸出時,在主要輸出後,額外列印一行:
//DIRED// BEG1 END1 BEG2 END2 ...
- BEGn 和 ENDn
是無符號整數,記錄每個檔名的起始、結束位置在輸出中的位置(
- 字節偏移量)。這使得
Emacs
易於找到檔名,即使檔名包含空格或換行等非正
常字符也無需特異的搜索。
- 如果目錄是遞歸列出的(“
-R
”選項),每個子目錄後列出類似一行:
- //SUBDIRED// BEG1 END1 ...
【譯注:我測試了
TurboLinux4.0 和 RedHat6.1
,發現它們都是在 “
//DIRED// BEG1... ”之後列出“
//SUBDIRED// BEG1 ...
”,也即只有一個
而不是在每個子目錄後都有。而且“
//SUBDIRED// BEG1 ...
”列出的是各個子目
錄名的偏移。】
- -F, --classify, --file-type
- 在每個檔名後附上一個字符以說明該檔案的類型。“
*
”表示普通的可執行檔案;
“ / ”表示目錄;“ @
”表示符號鏈接;“ |
”表示FIFOs;“ =
”表示套接字 (sockets)
;什麼也沒有則表示普通檔案。
- -G, --no-group
- 以長格式列目錄時不顯示組信息。
- -I, --ignorepattern
- 除非在命令行中給定,不要列出匹配
shell 檔名匹配式( pattern
,不是指一般
表達式)的檔案。在
shell 中,檔名以 "."
起始的不與在檔名匹配式
(pattern)
開頭的通配符匹配。
- -L, --dereference
- 列出符號鏈接指向的檔案的信息,而不是符號鏈接本身。
- -N, --literal
- 不要用引號引起檔名。
- -Q, --quote-name
- 用雙引號引起檔名,非列印字符以
C 語言的方法表示。
- -R, --recursive
- 遞歸列出全部目錄的內容。
- -S, --sort=size
- 按檔案大小而不是字典序排序目錄內容,大檔案靠前。
- -T, --tabsize cols
- 假定每個制表符寬度是
cols 。預設為
8。為求效率, ls
可能在輸出中使用制表符。
若 cols 為
0,則不使用制表符。
- -U, --sort=none
- 不排序目錄內容;按它們在磁碟上存儲的順序列出。(選項“
-U ”和“ -f ”的不
同是前者不啟動或禁止相關的選項。)這在列很大的目錄時特別有用,因為不加排序
能顯著的加快速度。
- -X, --sort=extension
- 按檔案擴展名(由最後的
"."
之後的字符組成)的字典序排序。沒有擴展名的先列
出。
- --color[=when]
- 指定是否使用顏色區別檔案類別。環境變量
LS_COLORS
指定使用的顏色。如何設置
這個變量見 dircolors(1) 。 when
可以被省略,或是以下幾項之一:
- none
不使用顏色,這是預設項。
- auto
僅當標準輸出是終端時使用。
always
總是使用顏色。指定
--color 而且省略 when
時就等同於 --color=always 。
- --full-time
- 列出完整的時間,而不是使用標準的縮寫。格式如同
date(1)
的預設格式;此格式
是不能改變的,但是你可以用
cut(1)
取出其中的日期字串並將結果送至命令
“ date -d ”。
- 輸出的時間包括秒是非常有用的。(
Unix
檔案系統儲存檔案的時間信息精確到秒,
- 因此這個選項已經給出了系統所知的全部信息。)例如,當你有一個
Makefile 檔案
不能恰當的生成檔案時,這個選項會提供幫助。
GNU 標準選項¶
- --help
- 列印用法信息到標準輸出並順利退出。
- --version
- 列印版本信息到標準輸出並順利退出。
- --
- 結束選項表。
變量 POSIXLY_CORRECT
可以決定一組選擇。如果沒有設置此變量,每個制表符的字
符數由變量 TABSIZE
決定。變量 COLUMNS
(當它由一個十進制整數表示時)決定輸
出的列寬度(同“ -C
”選項一起用時)。檔名不得為適應多列輸出而被截斷。變
量 LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES 及 LC_TIME
仍保持原義。 變量 TZ
給出時區供 ls
輸出相應的時間字串。變量
LS_COLORS 用以決定是否使用
顏色。
已知錯誤¶
在 BSD 系統上,對於從 HP-UX
系統上通過 NFS mount
而來的檔案,“ -s
”選項報
告的大小只有正確值的一半;在
HP-UX 系統上,對於從 BSD
系統上通過 NFS mount
而來的檔案, ls
報告的大小則有正確值的兩倍。這是
HP-UX
的一個缺陷造成的,它
也影響 HP-UX 上的 ls 程式。
適合到¶
POSIX 1003.2
dircolors(1)
本頁描述的是 fileutils-3.16
檔案包中的 ls
,其它版本的可能略有不同。糾錯或添
加(功能)請 mailto: aeb@cwi.nl 和
aw@mail1.bet1.puv.fi 及 ragnar@lightside.ddns.org
。本程式的錯誤報告請
mailto: fileutils-bugs@gnu.ai.mit.edu 。
[中文版維護人]¶
wangdong <wangdong@163.net>
[中文版最新更新]¶
2003.11.22
《中國linux論壇man手冊翻譯計劃》:¶
http://cmpp.linuxforum.net