显示目录的内容

使用 ls 命令可显示目录的内容。

ls 命令将每个指定目录的内容或每个指定文件的名称以及使用标志请求的所有其他信息一并写入标准输出。 如果未指定文件目录,那么 ls 命令显示当前目录的内容。

缺省情况下,ls 命令按照文件名的字母顺序显示所有信息。 如果该命令由具有 root 用户权限的用户执行,那么缺省情况下它使用 -A 标志,列出除点 (.) 和点 (..) 以外的所有条目。 要显示文件的所有条目,包括以点 (.) 开头的条目,请使用 ls -a 命令。

可以使用以下方式格式化输出:
  • 每行列出一个条目,使用 -l 标志。
  • 在多个列中列出条目,通过指定 -C-x 标志。 当向 TTY 输出时,-C 标志是缺省格式。
  • 通过指定 -m 标志以用逗号分隔的序列列出条目。

要确定输出行中字符位置的数目,ls 命令使用 $COLUMNS 环境变量。 如果未设置此变量,那么该命令将读取 terminfo 文件。 如果使用这些方法,ls 命令 还不能确定字符位置的数量,它就使用缺省值 80。

使用 -e -l 标志显示的信息解释如下:

每个条目的首个字符可能为以下内容之一:

描述
条目是一个目录。
条目是一个块特殊文件。
c 条目是一个字符特殊文件。
L 条目是一个符号链接。
p 条目是一个先进先出(FIFO)的管道特殊文件。
条目是一个本地套接字。
- 条目是一个普通文件。

接下来的 9 个字符被分成 3 个集合,每个集合 3 个字符。 前三个字符显示文件或目录所有者的许可权。 接下的三个字符显示组中其他用户的许可权。 最后三个字符显示具有文件访问权的其他任何用户的许可权。 每组中的三个字符显示文件的读、写和执行许可权。 目录的执行权限让您可以搜索目录中的指定文件。

许可权表示如下:

描述
R 授予读许可权
t 只有目录所有者或文件所有者才可以删除或重命名该目录中的文件,即使其他人具有目录的写许可权亦是如此。
w 授予写(编辑)许可权
X 授予执行(搜索)许可权
- 不授予相应的许可权。

使用 -e 标志显示的信息与使用 -l 标志显示的信息相同(除了添加第 11 个字符),解释如下:

描述
+ 表示文件有扩展安全性信息。 例如,该文件可能在方式下扩展了 ACLTCBTP 属性。
- 表示文件没有扩展安全性信息。

当列示目录中文件大小时,ls 命令显示块总数,包括间接块。

请参阅以下示例:
  • 要列出当前目录中的所有文件,请输入以下命令:
    ls -a
    它列出所有文件,包括
    • 点 (.)
    • 双句点 (..)
    • 其他名称可能以或不以点(.)开头的文件
  • 要显示详细信息,请输入以下命令:
    ls -l chap1 .profile
    显示一个长列表,包括关于 chap1.profile 的详细信息。
  • 要显示有关目录的详细信息,请输入以下命令:
    ls -d -l . manual manual/chap1
    这将显示目录 .manual以及文件 manual/chap1的长列表。 如果没有 -d 标志,这将列示 .manual 目录中的文件,而不是有关目录本身的详细信息。