2.列出目录内容
列出一个目录包含的文件及子目录,使用 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-