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

参看

外部链接

文档