一. ls 指令的功能 & 语法 & 常用选项
要想知道系统中都有哪些文件, 需要使用列表命令 - ls .
语法: ls [选项][目录或文件]
功能: 对于目录, 该命令列出该目录下的所有子目录与文件; 对于文件, 仅列出指定文件名.
常用选项:
-
-l列出文件的详细信息. -
-a列出目录下的所有文件, 包括以 . 开头的隐含文件. -
-F在每个文件名后附上一个字符以说明该文件的类型,*表示可执行的普通文件;/表示目录;@表示符号链接;|表示命名管道 (FIFOs);=表示套接字 (sockets). -
-R列出所有子目录下的文件. (递归) -
-d将目录像文件一样显示, 而不是显示其下的文件. 如:ls –d [指定目录] -
-i显示所有文件的 inode 号. -
-n用数字的 UID, GID 代替名称. -
-r对文件反向排序. -
-t以文件最近的修改时间顺序排序. (最新修改的文件在最前面) -
-h通常与-l连用, 在列出文件详细信息的同时使用更加人性化的方式标记文件的大小. -
-S以文件的大小进行排序. (大的在前面, 小的在后面) -
-s在文件名前输出该文件的大小. -
-1一行只输出一个文件.
提示: 更多有关
ls的指令请使用man ls进行查看.
二. 显示基本列表
ls
ls 命令最基本的形式会显示当前目录下的文件和目录.
其输出列表是按字母表先后顺序排列的. (按列排序而不是按行排序)
ls -F
ls 命令的 -F 选项可以轻松地区分文件和目录.
目录名之后会添加正斜杠 ( / ); 可执行文件之后会添加星号 ( * ).
ls -a
基本的 ls 命令显示了当前所处目录下的文件和子目录, 但不是全部. Linux 经常使用隐藏文件来保存配置信息. 在 Linux 中, 隐藏文件通常是文件名以点号 ( . )开始的文件. 这些文件并不会在 ls 命令的默认输出中出现, 因此我们称其为隐藏文件.
要想显示隐藏文件, 可以使用 -a 选项.
ls -R
-R 是 ls 命令的另一个选项, 称作递归选项, 不仅可以列出当前所处目录包含的子目录中的文件, 还能列出子目录下的子目录及其内容 (也就是用户主目录下所有子目录及其内容).
提示: 选项可以合并输出, 如:
ls -F -R可以将其合并成为ls -FR.
三. 显示长列表
ls -l ( ll )
在基本的输出列表中, ls 命令并未显示关于每个文件的许多信息. 要显示更多信息, 一个常用的选项是 -l. -l 选项会产生长列表格式的输出, 提供当前所处目录中各个文件的详细信息.
在长列表格式输出中, 每一行会列出一个文件或目录. 除了文件名, 输出中还包括其他有用信息. 输出的第一行显示了为该目录中的文件所分配的总块数, 此后的每一行都包括了关于文件(或目录)的下列信息.
-
文件类型, 比如目录 (
d), 文件 (-), 链接文件 (l), 套接字文件 (s), 字符设备文件 (c), 块设备文件 (b), 管道文件 (p). -
文件的权限, 读权限 (
r), 写权限 (w), 可执行权限 (x), 无权限 (-). -
文件的硬链接数.
-
文件拥有者.
-
文件所属组.
-
文件大小. (以字节为单位)
-
文件最近一次的修改时间.
-
文件名或目录名.
提示: 如果只想查看单个文件的长列表, 那么只需在
ls -l命令之后跟上该文件名即可. 但如果想查看目录的相关信息, 而非目录所包含的内容, 则除了-l选项之外, 还得添加-d选项, 即ls -ld目录名.
四. 过滤输出列表
当只需要查看少数文件时, 使用过滤器显示指定的文件或目录.
过滤器就是一个字符串, 可用作简单的文本匹配, 可以将其作为命令行参数, 置于选项之后使用.
当指定特定的文件名作为过滤器时, ls 命令只会显示该文件的信息.
有时可能不知道要找的那个文件的确切名称, ls 命令也可以识别标准通配符 (wildcard), 并在过滤器中用来进行模式匹配.
- 问号 (
?) 代表任意单个字符.
- 星号 (
*) 代表零个或多个字符.
在搜索文件时, 通配符匹配是一个功能强大的特性, 它也可以用于 ls 以外的其他 shell 命令.