ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。此命令的基本格式为:
[root@localhost ~]# ls [选项] 目录名称
表 1 列出了 ls 命令常用的选项以及各自的功能。
选项
|
功能
|
-a
|
显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一。
|
-A
|
显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录。
|
-d
|
仅列出目录本身,而不是列出目录内的文件数据。
|
-f
|
ls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序。
|
-F
|
在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
|
-h
|
以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等。
|
-i
|
显示 inode 节点信息。
|
-l
|
使用长格式列出文件和目录信息。
|
-n
|
以 UID 和 GID 分别代替文件用户名和群组名显示出来。
|
-r
|
将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小。
|
-R
|
连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。
|
-S
|
以文件容量大小排序,而不是以文件名排序。
|
-t
|
以时间排序,而不是以文件名排序。
|
--color=never
--color=always
--color=auto
|
never 表示不依据文件特性给予颜色显示。
always 表示显示颜色,ls 默认采用这种方式。
auto 表示让系统自行依据配置来判断是否给予颜色。
|
--full-time
|
以完整时间模式 (包含年、月、日、时、分)输出
|
--time={atime,ctime}
|
输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。
|
注意,当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。除此之外,如果想使用 ls 命令显示更多内容,就需要使用表 1 相应的选项。
[root@www ~]# ls -al ~ total 156 drwxr-x--- 4 root root 4096 Sep 24 00:07 . drwxr-xr-x 23 root root 4096 Sep 22 12:09 .. -rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg -rw------- 1 root root 955 Sep 24 00:08 .bash_history -rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout -rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile -rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc drwx------ 3 root root 4096 Sep 5 10:37 .gconf -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log -rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
不仅如此,这里的 ls 命令还使用了 -l 选项,因此才显示出了文件的详细信息,此选项显示的这 7 列的含义分别是:
- 第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续章节中讲解。
- 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
- 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
- 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
- 第五列:大小,默认单位是字节。
- 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
- 第七列:文件名或目录名。
如果想查看某个目录的详细信息,例如:
[root@localhost ~]# ls -l /root/ 总用量44 -rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg -rw-r-r--.1 root root 24772 1 月 14 18:17 install.log -rw-r-r--.1 root root 7690 1 月 14 18:17 install.log.syslog
这个命令会显示目录下的内容,而不会显示这个目录本身的详细信息。如果想显示目录本身的信息,就必须加入 "-d" 选项。
[root@localhost ~]# ls -ld /root/ dr-xr-x---.2 root root 4096 1 月 20 12:30 /root/
"ls-l" 显示的文件大小是字节,但是我们更加习惯的是千字节用 KB 显示,兆字节用 MB 显示,而 "-h" 选项就是按照人们习惯的单位显示文件大小的,例如:
[root@localhost ~]# ls -lh 总用量44K -rw-------.1 root root 1.2K 1 月 14 18:18 anaconda-ks.cfg -rw-r-r--.1 root root 25K 1 月 14 18:17 install.log -rw-r-r--.1 root root 7.6K 1 月 14 18:17 install.log.syslog