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

 参看 
 chown：改变文件的拥有者。
 chgrp：改变文件的组
 du：查看文件的大小。
 用户标识符
 组标识符
 Dir (命令)：DOS下列出文件的命令。

 外部链接 
 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命令介绍
 文档 
 GNU版ls文档

Category:标准Unix程序