ls 命令
用途
显示目录的内容。
语法
要显示目录的内容或文件的名称,请输入:
ls [ -1 ] [ -A ] [ -C ] [ -E ] [ -F ] [-H | -L ] [ -N ] [ -R ] [ -S ] [ -X] [ -a ] [ -b ] [ -c ] [ -d ] [ -e ] [ -f ] [ -g ] [ -i ] [-k] [ -l ] [ -m ] [ -n ] [ -o ] [ -p ] [ -q ] [ -r ] [ -s ] [ -t ] [ -u ] [ -U ] [ -x ] [ File ...]
要显示目录的内容,请输入:
ls -f [ -C ] [ -d ] [ -i ] [ -m ] [ -s ] [ -X ] [ -x ] [ -1 ] [ -U ][ 目录... ]
描述
ls 命令将 每个由 Directory 参数指定的目录 或者每个由 File 参数指定的名称写入标准输出,以及您所要求的和标志一起的其他信息。 如果不指定 File 或 Directory 参数,ls 命令显示当前目录的内容。
在互斥对中指定多个选项不看成错误。 每对中最后一个指定的选项确定输出格式。
缺省情况下,ls 命令按照文件名的字母顺序显示所有信息。 整理顺序由环境变量 LANG 或 LC_COLLATE 环境变量确定。
当 ls 命令显示目录的内容时,它不会显示其名称以 开头的文件的条目。 (点) ,除非使用 -a 或 -A 标志。 如果命令由 root 用户执行,它缺省使用 -A 标志。
格式化输出有三种主要方式:
- 每行列示一项。
- 通过指定 -C 或 -x 标志来列示多列中的条目。 当向 TTY 输出时,-C 标志是缺省格式。 如果文件或目录名太长,ls 命令显示单列输出。
- 通过指定 -m 标志以用逗号分隔的序列列出条目。
要确定输出行中字符位置的数目,ls 命令使用环境变量 COLUMNS。 如果没有设置此变量,命令获取显示的当前列值。 如果使用这些方法,ls 命令 还不能确定字符位置的数量,它就使用缺省值 80。
| 项 | 描述 |
|---|---|
| E | 表示文件有扩展属性(EA)信息。 使用 getea 命令显示文件的 EA。 |
| - | 表示文件没有扩展属性信息。 |
| e | 表明文件已加密。 |
加密优先于访问控制表 (ACL) 和其他 EA。
使用 -e 和 -l 标志显示的方式解释如下:
如果第一个字符是:
| 项 | 描述 |
|---|---|
| 天 | 此项为目录。 |
| 博 | 此项为块特殊文件。 |
| c | 此项为字符特殊文件。 |
| L | 该条目是符号链接,并且指定了 -N 标志或符号链接未指向现有文件。 |
| p | 此项为一个先进先出(FIFO)特殊文件。 |
| 请 | 此项为本地套接字。 |
| - | 此项为普通文件。 |
接下来的 9 个字符被分成 3 个集合,每个集合 3 个字符。 第一组 3 字符集合显示所有者许可权。 下一组 3 字符集合显示了组中其他用户的许可权。 最后 3 字符集合显示了访问此文件的其他任何人的许可权。 每个集合中的三个字符各自表示了文件的读、写和执行权限。 目录的执行权限让您可以搜索目录中的指定文件。
许可权表示如下:
| 项 | 描述 |
|---|---|
| R | 读取 |
| w | 写(编辑) |
| X | 执行(搜索) |
| - | 没有授予相应的许可权 |
如果文件有 set-group-ID 方式,那么组执行许可权字符是 s。 如果文件有 set-user-ID 方式,那么用户执行许可权字符是 s。 如果设置了方式的 01000 (八进制) 位,那么方式的最后一个字符 (通常为 X 或 -) 为 特 (请参阅 奇莫德 命令以了解此方式的含义)。 如果没有设置相应的执行许可权,set-ID 的指示和方式位 01000 以大写字母开头(分别为 S 和 T)。 方式 t 表示粘滞位是为文件或目录而设置的。
当使用 -e 标志时,其显示方式与使用 -l 标志一样,除了多出了第 11 个字符,其解释如下:
| 项 | 描述 |
|---|---|
| + | 表示文件有扩展安全性信息。 例如,文件可能在方式中有扩展的 ACL、TCB
或者 TP 属性。 使用 aclget 命令显示文件的访问控制信息 (ACL)。 TCB 和 TP 属性的值通过使用 chtcb 命令显示。 |
| - | 表示文件没有扩展安全性信息。 |
当列示目录中文件大小时,ls 命令显示块总数,包括间接块。
标志
| 项 | 描述 |
|---|---|
| -A | 列示所有条目,除了 . (点) 和 .. (点点)的当前目录的绝对路径名,那么显示 PWD 环境变量的值。 |
| -a | 列出目录中的所有条目,包括以 开头的条目。 (点)。 |
| -b | 以八进制(\nnn)表示法显示非打印字符。 |
| -c | 将最近一次修改索引节点的时间用于排序 (与 -t 标志一起使用时) 或显示 (与 -l 标志一起使用时)。 如果此标志未与 -t 和/或 -l 标志一起使用,那么此标志无效。 |
| -C | 以多列纵向排序输出。 当往终端输出时,此为缺省方法。 |
| -d | 仅仅显示指定目录信息。 目录被视为文件,这在使用 -l 标志获取目录状态时很有用。 |
| -e | 显示方式(包括安全信息)、链接数目、所有者、组、大小(按字节)、最近修改时间和每个文件名称。 如果文件是特殊文件,大小字段包含主要和次要设备数目。 如果文件是符号链接,那么将在链接到文件的路径名前面打印一个-> (减号,大于号) 符号。 显示符号链接的属性。 |
| -E | 列示位于 Vxfs 文件系统的某个文件的范围属性,如保留空间、固定范围大小和范围分配标志信息。 必须将 -l 标志与此标志一起指定;否则,ls 命令会忽略 -E 标志并完成执行。 |
| -f | 在每个存储槽中列示 Directory 参数指定的每个目录的名称。 此标志关闭 -l, -t, -s和 -r 标志,并打开 -a 标志。 列表的顺序就是项出现在目录中的顺序。 |
| -f | 如果文件是目录,在文件名后面放置一个 /(斜杠),如果文件可执行,那么放置一个 *(星号),如果文件为套接字,那么放置一个 =(等号),如果为 FIFO,那么放置一个 |(管道)符号,如果是符号链接,那么放置一个 @。 除非指定了 -H 或 -L 标志,否则不允许使用命名为操作数的符号链接。 |
| -g | 显示与 -l 标志相同的信息,但 -g 标志禁止显示所有者和符号链接信息。 |
| -h | 如果在命令行上指定了引用类型目录文件的符号链接,ls 命令将文件信息和文件类型估计为由链接引用的文件的信息和类型,而非链接本身;然而,ls 命令将写链接本身的名称,而非由链接引用的文件。 |
| -i | 显示每个文件报告第一列中的索引节点号。 如果文件系统具有内部快照,那么 .snapshot 目录及其所有内容都没有唯一索引节点号。 |
| -k | 将 -s 选项的块大小以及为 -l、-n、-g 和 -o 选项写入的每个目录的块计数设置为 1024 个字节。 |
| -L | 列示链接引用的文件或目录内容。 这是缺省操作。 后跟符号链接。 如果使用 -l 选项,-N 选项就成为缺省值,不后跟符号链接。 当使用 -l 选项时,仅有 -L 选项能够覆盖 -N 缺省值。 |
| -l | (L 的小写)显示方式、链接数目、所有者、组、大小(按字节)和每个文件最近一次修改时间。 如果文件是特殊文件,大小字段包含主要和次要设备数目。 如果最近一次修改时间大于六个月之前,时间字段以 月份 日期 年份 的格式显示,然而六个月内修改的文件以
月份 日期 时间 的格式显示。 如果文件是符号链接,那么将在链接到文件的路径名前面打印一个->。 将显示符号链接的属性。 -n, -g和 -o 标志覆盖 -l 标志。 注意: |
| -M | 使用流输出格式(逗号分隔系列)。 |
| -n | 显示与 -l 标志相同的信息,只不过 -n 标志显示用户和组标识而不是用户和组名。 |
| -N | 当确定文件状态时,不跟在符号链接之后。注:如果使用 -L 和 -N 两个标志,最后一个标志起作用。 同样的,任何时候给定 一个包含以 /(斜杠)作为最后字符的符号链接,不管使用何种选项,后面都会跟有链接。 |
| -O | 显示与 -l 标志相同的信息,除了 -o 标志禁止显示组和符号链接信息。 |
| -p | 如果文件是目录,在每个文件名后面放置一个斜杠。 当您将 ls 命令的输出通过管道传输到 pr 命令时,这很有用,如下所示:
|
| -q | 将文件名中不可打印的字符显示为?(问号)。 |
| -r | 反转排序顺序,适当的按字母逆向排序或者首先排序最旧的文件。 |
| -R | 递归列示所有子目录。 |
| -s | 按照千字节(包括间接块)给出每一项的大小。 |
| -S | 以文件大小作为主键(按降序)、整理顺序中的文件名作为辅键(按升序)进行排序。 |
| -t | 按照最近一次修改时间(最近的最先)而不是名称排序。 对于符号链接,用作排序键的时间是符号链接本身的时间。 |
| -U | 显示与 -l 标志相似的信息。 显示方式(包括安全信息、指定的扩展属性信息和加密信息)、链接数目、所有者、组、大小(以字节为单位)、上次修改的时间和每个文件的名称。 如果文件是特殊文件,大小字段包含主要和次要设备数目。 如果文件是符号链接,那么将在链接到文件的路径名前面打印一个 -> (减号,大于号) 符号。 显示符号链接的属性。 |
| -U | 将上次访问的时间 (而不是上次修改的时间) 用于排序 (与 -t 标志一起使用时) 或显示 (与 -l 标志一起使用时)。 如果此标志未与 -t 和/或 -l 标志一起使用,那么此标志无效。 |
| -x | 以多列格式横向排序输出。 |
| -X | 当与用于显示用户名的其他标志配合使用时,将打印长用户名。 上限由 PdAt 和 CuAt 对象类中的 max_logname ODM 属性确定。 如果用户名大于 max_logname 属性,它会被截断到 max_logname 属性指定的字符数,再减掉一个字符。 |
| -1 | 强制输出为每行一项格式。 当输出没有定向到终端时,这是缺省情况。 |
- 如果指定了任何 -l, -n, -s, -g或 -o 标志, 在目录中存在的每个文件前面都有一个状态行,该状态行指示文件占用的文件系统块数。
- 如果未随任何 -l, -n, -s, -g一起指定 -k 标志, 或 -o 标志,状态行指示文件占用的文件系统块数 (以 512 字节为单位)。
- 如果 -k 标志与任何 -l, -n, -s, -g一起指定, 或 -o 标志,状态行指示文件占用的文件系统块数 (以 1024 字节为单位)。
- 此外,如果需要,目录中文件占用的文件系统块数将舍入为下一个整数单位数。
- 在 POSIX 语言环境中,总计
%u\n是表示目录中单元数的输出格式。
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 写所有文件成功。 |
| > 0 | 发生错误。 |
安全性
示例
- 要列出当前目录中的所有文件,请输入:ls -a这将列出所有文件,包括 。 (点) , .. (dot-dot) ,以及名称以点开头的其他文件。
- 要显示详细信息,请输入:ls -l chap1 .profile这将显示一个长列表,其中包含有关chap1和.profile.
- 要显示有关目录的详细信息,请输入:ls -d -l . manual manual/chap1这将显示目录的长列表.和manual,并且对于文件manual/chap1。如果没有 -d 标志,这将列出.和manual而不是有关目录本身的详细信息。
- 要按修改时间顺序列出文件,请输入:ls -l -t显示最近被修改文件的长列表,较旧的文件跟在后面。
- 想要用扩展的用户名和组名显示详细信息,请输入:
显示一个长列表,包括关于 .profile 的详细信息。ls -lX .profile - 要显示有关是否为当前目录中的文件设置了扩展属性的数据,请输入:
ls -U- 适用于AIX 5.3及更早版本:
示例输出:
-rwSr-x---+ 1 root system 28 Apr 29 03:23 only_aixc -rwSr-x---E 1 root system 4 Apr 29 03:23 only_aixc_ea -rw-r--r--E 1 root system 4 Apr 29 03:23 only_ea ----------+ 1 root system 265 Apr 29 03:23 only_nfs4 ----------E 1 root system 64 Apr 29 03:23 only_nfs4_ea -rw-r--r--- 1 root system 4 Apr 29 03:23 only_regular - 对于发行版 AIX 6.1 和更高版本:
示例输出:
-rwSr-x---+ 1 root system 28 Apr 29 03:23 only_aixc -rwSr-x---E 1 root system 4 Apr 29 03:23 only_aixc_ea -rw-r--r--E 1 root system 4 Apr 29 03:23 only_ea ----------+ 1 root system 265 Apr 29 03:23 only_nfs4 ----------E 1 root system 64 Apr 29 03:23 only_nfs4_ea -rw-r--r--- 1 root system 4 Apr 29 03:23 only_regular -rwxrwxr-xe 2 root system 256 May 25 16:27 encry_ex
- 适用于AIX 5.3及更早版本:
- 要显示有关当前目录中文件的文件系统块数 (以 512 字节为单位) 的信息,请输入:
ls -l示例输出:total 16 -rw-r--r-- 1 root system 22 Feb 05 05:29 sample1 -rw-r--r-- 1 root system 12 Feb 05 05:29 sample2 - 要显示有关当前目录中文件的文件系统块数 (以 1024 字节为单位) 的信息,请输入:
ls -lk示例输出:total 8 -rw-r--r-- 1 root system 22 Feb 05 05:29 sample1 -rw-r--r-- 1 root system 12 Feb 05 05:29 sample2
文件
| 项 | 描述 |
|---|---|
| /usr/bin/ls | 包含 ls 命令。 |
| /etc/passwd | 包含用户标识。 |
| /etc/group | 包含组标识。 |
| /usr/share/lib/terminfo/* | 包含终端信息。 |