ls
ls是一個由POSIX和單一Unix標準規範的命令,在Unix和類Unix系統中都有實現。ls是英文list的縮寫,用於列出檔案,是Unix和類Unix系統中使用非常頻繁的命令。
歷史
[編輯]ls首次出現於原始版本的AT&T Unix中。它的名字來源於Multics作業系統的一個類似命令,意思是「列出檔案塊」。目前有兩種主流版本的ls:一種是自由軟體基金會開發的GNU核心程式的組成部分;另一種由各種BSD版本發布,如FreeBSD、OpenBSD、NetBSD和蘋果公司的Darwin。兩種版本都是自由以及開源軟體。
使用方法
[編輯]在Unix和類Unix作業系統中都有當前目錄的概念,也即程式目前在目錄樹中的位置。
當不加參數執行時,ls列出當前目錄下的除隱藏檔案外的所有檔案和目錄名。如果以目錄名作為參數,則會列出該目錄下的檔案。使用者也可以指定多個檔案和目錄作為參數,ls則會列出所有指定的檔案和目錄中的檔名。
以 "."(圓點)開頭的目錄在一般情況下不會被列出。使用者可以加 -a
選項檢視所有檔案。
不加參數時,ls僅僅列出檔案和目錄的名稱,不加任何修飾。這通常讓人很難區分檔案的類型、大小、權限等屬性。顯示檔案常用資訊的一些參數如下:
-l
(long)長格式,顯示檔案類型、權限、硬連結的數目、檔案擁有者、檔案所在的組、大小、日期和檔名。-F
在不同類型的檔案的檔名結尾追加一個字元以示區別。可執行檔後加"*",目錄後加"/",管道檔案後加"|",通訊端檔案後加"=",普通檔案沒有字尾。-a
(all)顯示所有檔案,包括以 . 開頭的檔名(預設不顯示)。-A
(all)顯示所有檔案,不包括以.
(自身目錄)和..
(父目錄)。相關詞條:Inode-R
(recursive)迭代顯示目錄下所有的子目錄。ls -R/
會顯示檔案系統中的所有檔案。-d
(directory)顯示目錄本身的資訊,而不是列出目錄下的檔案。
在某些環境下,使用參數--color
(GNU版)或者"-G"(FreeBSD版)後,ls會根據檔案類型輸出不同色彩的格式。GNU版的ls根據檔案的類型、副檔名和使用權限來決定顏色,而FreeBSD版的ls僅僅檢查檔案類型和使用權限。
使用上述彩色選項時,輸出範例如下:
brw-r--r-- 1 unixguy staff 64, 64 Jan 27 05:52 block
crw-r--r-- 1 unixguy staff 64, 255 Jan 26 13:57 character
-rw-r--r-- 1 unixguy staff 290 Jan 26 14:08 compressed.gz
-rw-r--r-- 1 unixguy staff 331836 Jan 26 14:06 data.ppm
drwxrwx--x 2 unixguy staff 48 Jan 26 11:28 directory
-rwxrwx--x 1 unixguy staff 29 Jan 26 14:03 executable
prw-r--r-- 1 unixguy staff 0 Jan 26 11:50 fifo
lrwxrwxrwx 1 unixguy staff 3 Jan 26 11:44 link -> dir
-rw-rw---- 1 unixguy staff 217 Jan 26 14:08 regularfile
ls有大量的選項,具體的用法請參考ls的手冊頁。
範例
[編輯]下面的例子演示了不同參數下ls的使用。
$ pwd /home/unixguy $ ls -l drwxr--r-- 1 unixguy editors 4096 drafts -rw-r--r-- 1 unixguy editors 30405 edition-32 -r-xr-xr-x 1 unixguy users 8460 edit $ ls -F drafts/ edition-32 edit*
本例中,使用者unixguy有一個名叫drafts的目錄,一個叫做edition-32的常規檔案和一個叫做edit的可執行檔。
參看
[編輯]外部連結
[編輯]- LinuxQustion.org wiki上的ls (頁面存檔備份,存於網際網路檔案館)
- ls.c (頁面存檔備份,存於網際網路檔案館) 第七版Unix中ls的原始碼
- ls.c (頁面存檔備份,存於網際網路檔案館) AT&T第五版Unix中ls的原始碼
- newbie ls 簡明版ls的原始碼
- GNU核心程式版的ls原始碼
- 單一Unix標準規定的ls標準 (頁面存檔備份,存於網際網路檔案館)
- Computer Hope: Linux / UNIX, Information about the Linux / UNIX ls command.
- linux-command.com wiki上的ls命令介紹