一. 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).
· 文件的权限, 读权限 (r), 写权限 (w), 可执行权限 (x), 无权限 (-).
· 文件的硬链接数.
· 文件拥有者.
· 文件所属组.
· 文件大小. (以字节为单位)
· 文件最近一次的修改时间.
· 文件名或目录名.
提示: 如果只想查看单个文件的长列表, 那么只需在 ls -l 命令之后跟上该文件名即可. 但如果想查看目录的相关信息, 而非目录所包含的内容, 则除了 -l 选项之外, 还得添加 -d 选项, 即 ls -ld 目录名.
四. 过滤输出列表
当只需要查看少数文件时, 使用过滤器显示指定的文件或目录.
过滤器就是一个字符串, 可用作简单的文本匹配, 可以将其作为命令行参数, 置于选项之后使用.
当指定特定的文件名作为过滤器时, ls 命令只会显示该文件的信息.
有时可能不知道要找的那个文件的确切名称, ls 命令也可以识别标准通配符 (wildcard), 并在过滤器中用来进行模式匹配.
· 问号 ( ? ) 代表任意单个字符.
· 星号 ( * ) 代表零个或多个字符.
在搜索文件时, 通配符匹配是一个功能强大的特性, 它也可以用于 ls 以外的其他 shell 命令.