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的可執行文件。

參看

外部連結

文檔