列出一个目录包含的文件及子目录,使用 ls 命令。

[me@linuxbox ~]$ ls
Desktop Documents Music Pictures Public Templates Videos

实际上,用 ls 命令可以列出任一个目录的内容,而不只是当前工作目录的内容。

有充分的理由证明,ls 可能是用户最常使用的命令。通过它,我们可以知道目录的内容,以及各种各样重要文件和目录的 属性。正如我们所知道的,只要简单的输入 ls 就能看到在当前目录下所包含的文件和子目录列表。

[me@linuxbox ~]$ ls
Desktop Documents Music Pictures Publica Templates Videos

除了当前工作目录以外,也可以指定要列出内容的目录,就像这样:

me@linuxbox ~]$ ls /usr
bin games   kerberos    libexec  sbin   src
etc include lib         local    share  tmp

甚至可以列出多个指定目录的内容。在这个例子中,将会列出用户家目录(用字符“~”代表)和/usr 目录的内容:

[me@linuxbox ~]$ ls ~ /usr
/home/me:
Desktop  Documents  Music  Pictures  Public  Templates  Videos

/usr:
bin  games      kerberos  libexec  sbin   src
etc  include    lib       local    share  tmp

我们也可以改变输出格式,来得到更多的细节:

[me@linuxbox ~]$ ls -l
total 56
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Desktop
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Documents
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Music
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Pictures
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Public
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Templates
drwxrwxr-x 2  me  me  4096  2007-10-26  17:20  Videos

使用 ls 命令的“-l”选项,则结果以长模式输出。

选项和参数

我们将学习一个非常重要的知识点,大多数命令是如何工作的。命令名经常会带有一个或多个用来更正命令行为的选项, 更进一步,选项后面会带有一个或多个参数,这些参数是命令作用的对象。所以大多数命令看起来像这样:

command -options arguments

大多数命令使用的选项,是由一个中划线加上一个字符组成,例如,“-l”,但是许多命令,包括来自于 GNU 项目的命令,也支持长选项,长选项由两个中划线加上一个字组成。当然, 许多命令也允许把多个短选项串在一起使用。下面这个例子,ls 命令有两个选项, “l” 选项产生长格式输出,“t”选项按文件修改时间的先后来排序。

[me@linuxbox ~]$ ls -lt

加上长选项 “–reverse”,则结果会以相反的顺序输出:

[me@linuxbox ~]$ ls -lt --reverse

ls 命令有大量的选项。表4-1列出了最常使用的选项。

表 4-1: ls 命令选项

选项

长选项

描述

-a

--all

列出所有文件,甚至包括文件名以圆点开头的默认会被隐藏的隐藏文件。

-d

--directory

通常,如果指定了目录名,ls 命令会列出这个目录中的内容,而不是目录本身。 把这个选项与 -l 选项结合使用,可以看到所指定目录的详细信息,而不是目录中的内容。

-F

--classify

这个选项会在每个所列出的名字后面加上一个指示符。例如,如果名字是 目录名,则会加上一个'/'字符。

-h

--human-readable

当以长格式列出时,以人们可读的格式,而不是以字节数来显示文件的大小。

-l

以长格式显示结果。

 

-r

--reverse

以相反的顺序来显示结果。通常,ls 命令的输出结果按照字母升序排列。

-S

命令输出结果按照文件大小来排序。

 

-t

按照修改时间来排序。

 

深入研究长格式输出

正如我们先前知道的,“-l”选项导致 ls 的输出结果以长格式输出。这种格式包含大量的有用信息。下面的例子目录来自 于 Ubuntu 系统:

-rw-r--r-- 1 root root 3576296 2007-04-03 11:05 Experience ubuntu.ogg
-rw-r--r-- 1 root root 1186219 2007-04-03 11:05 kubuntu-leaflet.png
-rw-r--r-- 1 root root   47584 2007-04-03 11:05 logo-Edubuntu.png
-rw-r--r-- 1 root root   44355 2007-04-03 11:05 logo-Kubuntu.png
-rw-r--r-- 1 root root   34391 2007-04-03 11:05 logo-Ubuntu.png
-rw-r--r-- 1 root root   32059 2007-04-03 11:05 oo-cd-cover.odf
-rw-r--r-- 1 root root  159744 2007-04-03 11:05 oo-derivatives.doc
-rw-r--r-- 1 root root   27837 2007-04-03 11:05 oo-maxwell.odt
-rw-r--r-- 1 root root   98816 2007-04-03 11:05 oo-trig.xls
-rw-r--r-- 1 root root  453764 2007-04-03 11:05 oo-welcome.odt
-rw-r--r-