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