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)显示目录本身的信息,而不是列出目录下的文件。

在某些环境下,使用参数--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的可执行文件。

参看

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

文档

文件系統
  • cat
  • cd
  • chmod
  • chown
  • chgrp
  • cksum
  • cmp
  • cp
  • dd
  • du
  • df
  • file
  • fsck
  • fuser
  • ln
  • ls
  • mkdir
  • mount
  • mv
  • pax英语pax (Unix)
  • pwd
  • rm
  • rmdir
  • size
  • split
  • stat
  • tee
  • touch
  • type英语type (Unix)
  • umask英语umask
程序
  • at
  • bg
  • chroot
  • cron
  • fg
  • kill
  • killall英语killall
  • nice
  • pgrep
  • pkill英语pkill
  • ps
  • pstree英语pstree
  • time
  • top
用户环境
  • clear
  • env
  • exit
  • history英语history (Unix)
  • id
  • logname
  • mesg英语mesg
  • passwd
  • su
  • sudo
  • uptime
  • talk英语talk (software)
  • tput英语tput
  • uname
  • w
  • wall英语wall (Unix)
  • who
  • whoami
  • write英语write (Unix)
文本编辑
  • awk
  • banner英语banner (Unix)
  • basename
  • comm英语comm
  • csplit英语csplit
  • cut
  • diff
  • dirname
  • ed
  • ex
  • fmt英语fmt
  • fold英语fold (Unix)
  • head英语head (Unix)
  • iconv
  • join英语join (Unix)
  • less
  • more
  • nl英语nl (Unix)
  • paste英语paste (Unix)
  • sed
  • sort英语sort (Unix)
  • spell英语spell (Unix)
  • strings英语strings (Unix)
  • tail
  • tr
  • uniq英语uniq
  • vi
  • wc
  • xargs
壳层内建
网络
查找
文档
  • apropos英语apropos (Unix)
  • help英语help (command)
  • man
软件开发
杂项
  • bc
  • cal
  • dc
  • expr
  • lp英语lp (Unix)
  • lpr
  • sleep
  • true和false
  • yes