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-- 1 root root  358374 2007-04-03 11:05 ubuntu Sax.ogg

选一个文件,来看一下各个输出字段的含义:

表 4-2: ls 长格式列表的字段

字段含义
-rw-r--r-- 对于文件的访问权限。第一个字符指明文件类型。在不同类型之间, 开头的“-”说明是一个普通文件,“d”表明是一个目录。其后三个字符是文件所有者的 访问权限,再其后的三个字符是文件所属组中成员的访问权限,最后三个字符是其他所 有人的访问权限。这个字段的完整含义将在第十章讨论。
1 文件的硬链接数目。参考随后讨论的关于链接的内容。
root 文件属主的用户名。
root 文件所属用户组的名字。
32059 以字节数表示的文件大小。
2007-04-03 11:05 上次修改文件的时间和日期。
oo-cd-cover.odf 文件名。

posted on 2018-06-29 14:16  代码ok  阅读(217)  评论(0编辑  收藏  举报