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命令介紹