ls是一個由POSIX單一Unix標準規範的命令,在Unix類Unix系統中都有實現。ls是英文list的縮寫,用於列出檔案,是Unix和類Unix系統中使用非常頻繁的命令。

歷史

ls首次出現於原始版本的AT&T Unix中。它的名字來源於Multics作業系統的一個類似命令,意思是「列出檔案塊」。目前有兩種主流版本的ls:一種是自由軟件基金會開發的GNU核心程式的組成部分;另一種由各種BSD版本發佈,如FreeBSDOpenBSDNetBSD蘋果公司Darwin。兩種版本都是自由以及開源軟件

使用方法

Unix類Unix作業系統中都有當前目錄的概念,也即程式目前在目錄樹中的位置。

當不加參數執行時,ls列出當前目錄下的除隱藏檔案外的所有檔案和目錄名。如果以目錄名作為參數,則會列出該目錄下的檔案。用戶也可以指定多個檔案和目錄作為參數,ls則會列出所有指定的檔案和目錄中的檔名。

以 "."(圓點)開頭的目錄在一般情況下不會被列出。用戶可以加 -a 選項檢視所有檔案。

不加參數時,ls僅僅列出檔案和目錄的名稱,不加任何修飾。這通常讓人很難區分檔案的類型、大小、權限等屬性。顯示檔案常用資訊的一些參數如下:

  • -l(long)長格式,顯示檔案類型、權限、硬連結的數目、檔案擁有者、檔案所在的、大小、日期和檔名。
  • -F 在不同類型的檔案的檔名結尾追加一個字元以示區別。可執行檔案後加"*",目錄後加"/",管道檔案後加"|",通訊端檔案後加"=",普通檔案沒有字尾。
  • -a(all)顯示所有檔案,包括以 . 開頭的檔名(預設不顯示)。
  • -A(all)顯示所有檔案,不包括以 .(自身目錄)和 .. (父目錄)。相關詞條:Inode
  • -R(recursive)迭代顯示目錄下所有的子目錄。ls -R/會顯示檔案系統中的所有檔案。
  • -d(directory)顯示目錄本身的資訊,而不是列出目錄下的檔案。

在某些環境下,使用參數--colorGNU版)或者"-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的可執行檔案。

參看

外部連結

文件