这是 lsposix 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
ls — 列出目录内容
概要
ls [-ikqrs] [-glno] [-A|-a] [-C|-m|-x|-1] \
[-F|-p] [-H|-L] [-R|-d] [-S|-f|-t] [-c|-u] [文件...]
商品描述
对于每个操作数命名一个类型的文件而不是目录或符号链接到一个
目录, ls 应写出文件的名称以及任何请求的、关联的
信息。 对于命名目录类型文件的每个操作数, ls 应写
目录中包含的文件的名称以及任何请求的、关联的
信息。 以a开头的文件名('。') 和任何相关信息
除非明确引用,否则不得写出, -A or -a 提供选项,或
实现定义的条件导致它们被写入。 如果其中一项或多项 -d,
-F或 -l 选项被指定,并且 -H 也不是 -L 选项被指定,对于
每个操作数命名一个指向目录的符号链接类型的文件, ls 应写
文件的名称以及任何请求的相关信息。 如果没有 -d, -F,
or -l 选项被指定,或者 -H or -L 为每个操作数指定了选项
命名一个指向目录的符号链接类型的文件, ls 应写出文件名
包含在目录中以及任何请求的相关信息。 每个
写入包含在目录中的文件名的情况下,如果目录
包含任何符号链接然后 ls 应评估文件信息和文件类型以
是符号链接本身的那些,除非 -L 选项被指定。
如果没有指定操作数, ls 应该表现得好像点的单个操作数 ('。')有
被指定。 如果指定了多个操作数, ls 应写非目录
先操作数; 它应根据目录和非目录操作数分别排序
当前语言环境中的整理顺序。
ls 实用程序应检测无限循环; 也就是说,输入以前访问过的
所遇到的最后一个文件的祖先目录。 当它检测到无限
循环, ls 应将诊断消息写入标准错误,并应恢复其
在层次结构中的位置或终止。
配置
ls 实用程序应符合 POSIX.1-2008 的基本定义卷, 部分 12.2,
公用事业 句法 指南.
应支持以下选项:
-A 写出所有目录条目,包括名称以
('。') 但不包括条目 dot 和 dot-dot (如果它们存在)。
-C 使用按列排序的条目编写多文本列输出,根据
到整理顺序。 文本列数和列分隔符
字符未指定,但应适应输出的性质
设备。 此选项禁用长格式输出。
-F 不要遵循命名为操作数的符号链接,除非 -H or -L 选项是
指定的。 写一个('/') 紧跟在每个路径名之后
目录,一个('*') 在每个可执行文件之后,一个
('|') 之后是 FIFO 和 at 符号 ('@') 在每个之后是一个
符号链接。 对于其他文件类型,可能会写入其他符号。
-H 评估指定的符号链接的文件信息和文件类型
命令行是链接引用的文件的命令行,而不是链接
本身; 然而, ls 应写链接本身的名称而不是文件
由链接引用。
-L 评估所有符号链接的文件信息和文件类型(无论是
在命令行上命名或在文件层次结构中遇到)是那些
链接引用的文件,而不是链接本身; 然而, ls 应写
链接本身的名称,而不是链接引用的文件。 什么时候 -L is
与使用 -l, 以长格式写入符号链接的内容(请参阅
标准输出部分)。
-R 递归列出遇到的子目录。 当一个目录的符号链接
遇到,目录不应递归列出,除非 -L
选项被指定。 指某东西的用途 -R -d or -f 产生未指定的结果。
-S 以主键为文件大小(按降序)和
次要键是整理顺序中的文件名(按递增顺序)。
-a 写出所有目录条目,包括名称以
('。').
-c 上次修改文件状态信息的使用时间(见Base
POSIX.1-2008 的定义卷, ) 而不是最后一次修改
用于排序的文件本身(-t) 或写作 (-l).
-d 不要遵循命名为操作数的符号链接,除非 -H or -L 选项是
指定的。 不要将目录与其他类型的文件区别对待。 这
用于 -d -R or -f 产生未指定的结果。
-f 按照它们在目录操作数中出现的顺序列出目录操作数中的条目
目录。 非目录操作数的行为未指定。 这个选项
将开启 -a。 何时 -f 被指定,任何出现 -r, -S及 -t
选项将被忽略,任何出现的 -A, -g, -l, -n, -o及 -s
选项可能会被忽略。 指某东西的用途 -f -R or -d 产生未指定
结果。
-g 打开 -l (ell) 选项,但禁用写入文件的所有者名称或
数字。 禁用 -C, -m及 -x 选项。
-i 对于每个文件,写入文件的文件序列号(请参阅 统计() 在系统中
POSIX.1-2008 的接口卷)。
-k 设置块大小 -s 选项和写入的每个目录的块数
等加工。为 -l, -n, -s, -g及 -o 选项(参见 STDOUT 部分)到 1024 字节。
-l (字母 ell。)不要跟随命名为操作数的符号链接,除非 -H
or -L 选项被指定。 以长格式写出(参见 STDOUT 部分)。
禁用 -C, -m及 -x 选项。
-m 流输出格式; 列出整个页面的路径名,用 a 分隔
字符后跟一个特点。 用一个字符作为列表
终止符和分隔符序列之后,当一行中没有空间时
下一个列表条目。 此选项禁用长格式输出。
-n 打开 -l (ell) 选项,但在写入文件的所有者或组时,写入
分别是文件的数字 UID 或 GID,而不是用户名或组名。
禁用 -C, -m及 -x 选项。
-o 打开 -l (ell) 选项,但禁用写入文件的组名或
数字。 禁用 -C, -m及 -x 选项。
-p 写一个('/') 在每个文件名之后,如果该文件是一个目录。
-q 强制不可打印的文件名字符的每个实例和字符到
写成('?) 特点。 实现可能提供
如果输出到终端设备,则默认使用此选项。
-r 反转排序顺序以先获得最旧的反向整理序列,或
最小文件大小首先取决于给定的其他选项。
-s 指示显示的每个文件消耗的文件系统块总数。
如果 -k 还指定了选项,块大小应为 1024 字节;
否则,块大小是实现定义的。
-t 以被时间修改的主键排序(最近修改的最先)和
次要键是整理顺序中的文件名。 对于象征性的
链接,用作排序键的时间是符号链接本身的时间,除非
ls 正在评估其文件信息是否为引用的文件的信息
链接(见 -H 和 -L 选项)。
-u 上次访问的使用时间(参见 POSIX.1-2008 的 Base Definitions 卷,
) 而不是对文件的最后修改进行排序 (-t),或
写作 (-l).
-x 与...相同 -C,除了多文本列输出是用
条目跨列而不是向下排序。 此选项禁用长
格式输出。
- 1 (数字一位。)强制输出为每行一个条目。 这个选项
不禁用长格式输出。 (长格式输出由 -g, -l
(嗯), -n及 -o; 并被禁用 -C, -m及 -x.)
如果启用长格式输出的选项 (-g, -l (嗯), -n及 -o 给出了一个
禁用长格式输出的选项 (-C, -m及 -x),这不应被视为
错误。 指定的这些选项中的最后一个应确定长格式输出是否为
书面。
If -R, -d或 -f 指定,指定这些互斥选项的结果
由上面这些选项的描述指定。 如果以上任何一项
给出了在互斥集合中 SYNOPSIS 部分中显示的其他选项,这
不应被视为错误; 每组中指定的最后一个选项应确定
输出。
请注意,如果 -t 被指定, -c 和 -u 不仅相互排斥,
它们也是互斥的 -S 在确定排序顺序时。 但即使 -S is
在所有出现之后指定 -c, -t及 -u, 最后一次使用 -c or -u 确定
生成长格式输出时打印的时间戳。
操作数
应支持以下操作数:
文件 要写入的文件的路径名。 如果没有找到指定的文件,一个
诊断消息应在标准错误时输出。
标准输入
不曾用过。
INPUT FILES
没有。
环境 变数
以下环境变量会影响执行 ls:
柱 确定用户的首选列位置宽度以编写多个文本-
列输出。 如果此变量包含表示小数的字符串
整数, ls 实用程序应计算要写入的路径名文本列的数量
(见 -C) 基于提供的宽度。 如果 柱 未设置或无效,一个
应假定实现定义的列位置数,基于
实现对输出设备的了解。 选择的列宽
写入任何给定目录中的文件名应保持不变。 文件名
不得截断以适应多文本列输出。
朗 为未设置或未设置的国际化变量提供默认值
空值。 (参见 POSIX.1-2008 的基本定义卷, 部分 8.2,
国际化 变量 为国际化优先
用于确定语言环境类别值的变量。)
LC_ALL 如果设置为非空字符串值,则覆盖所有其他字符串的值
国际化变量。
LC_COLLATE
确定字符整理信息的区域设置
路径名整理顺序。
LC_CTYPE 确定用于解释文本数据字节序列的语言环境
作为字符(例如,单字节而不是多字节字符
参数)以及哪些字符被定义为可打印(字符类
打印).
LC_消息
确定应该用于影响格式和内容的语言环境
写入标准错误的诊断消息。
LC_TIME 确定由以下人员编写的日期和时间字符串的格式和内容 ls.
路径 确定用于处理的消息目录的位置 LC_消息.
TZ 确定由编写的日期和时间字符串的时区 ls。 如果 TZ 未设置
或 null,应使用未指定的默认时区。
异步 新闻
默认。
标准输出
默认格式应为每行列出一个条目到标准输出; 例外
是到终端或当其中之一 -C, -m或 -x 选项被指定。 如果输出是
对于终端,格式是实现定义的。
什么时候 -m 指定,用于列表最后一个元素的格式应为:
"%s\n", <文件名>
列表中每个其他元素使用的格式应为:
"%s,%s", <文件名>,分离器>
其中,如果列表的下一个元素没有空间适合当前
线长,分离器> 是一个包含可选的字符串字符和一个
强制的特点; 否则它是一个单一的特点。
如果 -i 选项被指定,文件的文件序列号(见基本定义
POSIX.1-2008 卷, ) 须以下列格式书写在任何
相应条目的其他输出:
%u ", <文件 串行 数>
如果 -l 指定选项,其他文件将写入以下信息
比字符特殊和块特殊文件:
"%s %u %s %s %u %s %s\n", <文件 模式>,数 of 链接>,
<业主 姓名>,组 姓名>,尺寸>,日期 和 次>,
<路径名>
如果 -l 选项被指定,以下信息将被写入字符
特殊和块特殊文件:
"%s %u %s %s %s %s %s\n", <文件 模式>,数 of 链接>,
<业主 姓名>,组 姓名>,设备 info>,日期 和 次>,
<路径名>
在这两种情况下,如果文件是符号链接并且 -L 还指定了选项,这
信息应针对从符号链接解析的文件,除了
<路径名> 字段应包含符号链接本身的路径名。 如果文件是一个
符号链接和 -L 未指定选项,此信息应与链接有关
本身和路径名> 字段应为以下形式:
"%s -> %s", <路径名 of 链接>,Contents of 链接>
-n, -g及 -o 选项使用相同的格式 -l, 但省略了项目及其
联系人物。 请参阅选项部分。
在前两者中 -l 表格,如果业主 姓名>或组 姓名> 无法确定,或
if -n 给定,它们应使用相关的数值替换
格式 %u.
这尺寸> 字段应包含将为文件中的文件返回的值
大小 现场 结构 统计 (参见 POSIX.1-2008 的基本定义卷,
)。 请注意,对于某些文件类型,此值未指定。
这设备 info> 字段应包含与相关的实现定义的信息
有问题的设备。
这日期 和 次> 字段应包含适当的日期和时间戳
文件最后修改。 在 POSIX 语言环境中,该字段应等同于
以下输出 日期 命令:
日期 "+%b %e %H:%M"
如果文件在过去六个月内被修改过,或者:
日期 "+%b %e %Y”
(其中两个字符之间使用 %e 和 %Y) 如果文件没有被
在过去六个月内修改过,或者如果修改日期在未来,除了,
在这两种情况下,最终由。。。生产 日期 不应包括和输出
就好像 日期 命令在最后修改日期的时间执行
文件而不是当前时间。 当。。。的时候 LC_TIME 语言环境类别未设置为
POSIX 语言环境,可以使用该字段的不同格式和呈现顺序。
如果路径名被指定为 文件 操作数,应按规定写入。
下写的文件模式 -l, -n, -g及 -o 选项应包括以下内容
格式:
"%c%s%s%s%s", <条目 类型>,业主 权限>,
<组 权限>,other 权限>,
<可选 备用 ACCESS 方法 旗>
这可选 备用 ACCESS 方法 旗> 如果没有,则为空字符串
与文件关联的替代或附加访问控制方法; 否则,它
应是包含单个可打印字符的字符串,该字符不是.
这条目 类型> 字符应描述文件类型,如下所示:
d 目录。
b 块特殊文件。
c 字符特殊文件。
l (ell) 符号链接。
先进先出。
− 常规文件。
实现可能会向此列表添加其他字符以表示其他实现 -
定义的文件类型。
接下来的三个字段应分别为三个字符:
<业主 权限>
文件所有者类的权限(请参阅基本定义卷
POSIX.1-2008, 部分 4.4, 文件 访问 权限).
<组 权限>
文件组类的权限。
<other 权限>
文件其他类的权限。
每个字段应具有三个字符位置:
1。 如果 'r',文件可读; 如果 '-',该文件不可读。
2。 如果 'w',文件可写; 如果 '-',该文件不可写。
3. 以下第一个适用:
如果在业主 权限>, 该文件不可执行且设置用户 ID 模式为
放。 如果在组 权限>、文件不可执行且设置组ID模式
置。
如果在业主 权限>,该文件是可执行的,并且设置了 set-user-ID 模式。
如果在组 权限>,该文件是可执行的,并且设置了 set-group-ID 模式。
如果在other 权限> 并且文件是目录,搜索权限不是
授予其他人,并设置限制删除标志。
如果在other 权限> 并且文件是一个目录,搜索权限是
授予其他人,并设置限制删除标志。
x 文件是可执行的或目录是可搜索的。
- 没有的属性 'S', 's', 'T', 't'或 'x' 适用。
实现可以将其他字符添加到此列表中的第三个字符
位置。 但是,如果文件是
可执行或可搜索,如果不是,则为大写。
如果其中任何一个 -l, -n, -s, -g或 -o 选项被指定,每个文件列表中的
目录前面应有一个状态行,指示文件系统块的数量
以 512 字节为单位被目录中的文件占用,如果 -k 未指定选项,或
1024 字节单位,如果 -k 选项被指定,四舍五入到下一个整数
单位,如有必要。 在 POSIX 语言环境中,格式应为:
“全部的 %联合国”, <数 of 单位 in 此 目录>
如果有多个目录,或非目录文件和目录的组合
写入,或者作为指定多个操作数的结果,或者 -R 选项,每个列表
目录中的文件应以:
"\n%s:\n", <目录 姓名>
如果这个字符串是第一个要写的东西,第一个不得写。
此输出应在目录中的单元数之前。
如果 -s 给定选项,每个文件都应写入所使用的块数
文件。 随着 -C, - 1, -m或 -x,数量和一个应先于
文档名称; 和 -l, -n, -g或 -o, 它们应位于描述文件的每一行之前。
斯特德
标准错误应仅用于诊断消息。
OUTPUT FILES
没有。
EXTENDED 商品描述
没有。
退出 状态
应返回以下退出值:
0 成功完成。
>0 发生错误。
后果 OF 错误
默认。
以下 部分 ,那恭喜你, 内容丰富。
申请须知 用法
许多实现使用('=') 表示绑定到文件的套接字
系统为 -F 选项。 同样,许多历史实现使用 's' 字符
将套接字表示为 -l 选项。
应用程序很难使用文件模式字段的每个部分 ls -l 在
便携方式。 某些文件类型和可执行位不能保证完全正确
如图所示,因为实现可能有扩展。 应用程序可以使用此字段传递
直接到用户打印输出或提示,但基于其内容的操作通常应该
而是推迟到 test 效用。
输出 ls (随着 -l 和相关选项)包含逻辑上的信息
可以被实用程序使用,例如 CHMOD 和 触摸 将文件恢复到已知状态。
然而,这些信息是以一种不能被那些人直接使用的格式呈现的。
实用程序或易于转换为可以使用的格式。 一个字符被
添加到权限字符串的末尾,以便应用程序至少有一个
表明他们可能在他们不了解的领域工作,而不是假设
他们可以将权限字符串转换为可以使用的内容。 未来
版本或相关文档可以定义一个或多个特定字符以基于
不同标准的附加或替代访问控制机制。
与许多处理文件名的实用程序一样,输出 ls 对于多个
文件或长列表格式之一必须在系统上谨慎使用
文件名可以包含嵌入的空格。 系统和系统管理员应该
制定政策和用户培训以限制使用此类文件名。
它报告的文件占用的磁盘块数取决于
底层文件系统类型、报告的块大小单位和计算方法
块数。 在某些文件系统类型上,数字是实际的块数
被文件占用(计算间接块并忽略文件中的空洞); 在别人身上
它是根据文件大小计算的(通常考虑到间接块,
但忽略漏洞)。
示例
一个完整列出的小目录树的例子 ls -laRF a 在 POSIX
语言环境:
总 11
drwxr-xr-x 3 狐狸 PROG 64 七月 4 12:07 ./
博士xrwxrwx 4 狐狸 PROG 3264 七月 4 12:09 .. /
drwxr-xr-x 2 狐狸 PROG 48 七月 4 12:07 b/
-rwxr--r-- 1 狐狸 PROG 572 七月 4 12:07 富*
甲/乙:
总4
drwxr-xr-x 2 福克斯节目 48 月 4 日 12:07 ./
drwxr-xr-x 3 福克斯编 64 月 4 日 12:07 ../
-rw-r--r-- 1 福克斯前卫 700 4 月 12 日 07:XNUMX 栏
基本原理
的一些历史实现 ls 实用程序显示目录中的所有条目,除了
超级用户调用时的点和点 ls 不指定 -a 选项。 什么时候
“普通”用户调用 ls 不指定 -a,他们不应该看到有关
名称以 a 开头的任何文件除非他们被命名为 文件 操作数。
在处理 -R 选项。
对深度的唯一限制应基于耗尽物理存储
跟踪未遍历的目录。
- 1 (一) 选项历史上仅在 BSD 和 BSD 派生的实现中找到。 它
本卷 POSIX.1-2008 中需要
即使输出到终端,输出也是每行一个条目。
-S 选项是在第 7 期中添加的,但已由多个实现提供
很多年。 标准文件中给出的描述历史惯例,但确实
与描述其行为的大部分文档不匹配。 历史文献
通常将其描述为:
-S 按大小排序(最大的大小在前)而不是按名称排序。 特殊字符设备
(最后列出)按名称排序。
即使在对输出进行排序时从未考虑过文件类型。 人物特辑
文件通常排在列表末尾附近,因为它们的文件大小在大多数
实现为零。 但它们与任何其他文件按字母顺序排序
碰巧具有相同的文件大小(零),未单独排序并添加到末尾。
POSIX.1-2008 的这一卷经常对相互之间发生的事情保持沉默 -
指定了独占选项。 除了 -R, -d及 -f是, ls 实用程序需要
从每个互斥的选项集中接受多个选项,而不将它们视为
错误并使用每个相互中给出的最后一个选项指定的行为 -
独家套装。 自从 ls 是最别名的命令之一,重要的是
执行直观。 例如,如果别名是:
别号 ls="ls -C"
并且用户输入 ls - 1 (一)、单文本列输出应该是结果,而不是错误。
-g, -l (嗯), -n及 -o 选项不是互斥的选项。 他们都启用
长格式输出。 它们共同确定文件的所有者是否被写入
(不,如果 -g 存在),文件的组被写入(如果没有 -o 存在),如果文件的
group 或 owner 是否写入名称(默认)或字符串
UID 或 GID 编号的表示(如果 -n 存在)。 这 -C, -m, -x及 - 1 (之一)
是互斥的选项,其中前三个禁用长格式输出。
- 1 (一)选项不直接改变是否启用长格式输出,
但通过覆盖 -C, -m及 -x, 它可以重新启用之前的长格式输出
被这些选项之一禁用。
该标准的早期版本没有描述 BSD -A 选项(如 -a,但点和
点-点没有写出来)。 由于广泛实施,它已被添加。
实现可能会使 -q 终端默认防止木马攻击
带有特殊转义序列的终端。 这不是必需的,因为:
* 某些控制字符可能对某些终端有用; 例如,一个系统可能
把它们写成 “\001” or “^A”.
* 终端的特殊行为与应用程序的可移植性无关。
一项早期提案规定,可选 备用 ACCESS 方法 旗> 必须是 '+'
如果文件上使用了替代访问方法,或者如果没有。 这个
被改为如果没有,如果有,则为单个可打印字符。
这样做是出于三个原因:
1. 有使用字符以外的历史实现 '+'.
2. 有一些实现可以改变在那个位置使用的这个字符
区分使用中的各种替代访问方法。
3. 标准开发者不想排除未来可能需要的规范
一种指定多个替代访问方法的方法。
尽管如此,鼓励提供单一替代访问方法的实现
使用 '+'.
该标准的早期版本没有 -k 选项,这意味着 -s
选项无法移植,因为它的块大小是实现定义的,并且
用于指定某个目录中的文件占用的块数的单位 ls -l
列表被固定为 512 字节单位。 这 -k 已添加选项以提供一种方式
此 -s 可移植的选项,为了一致性,它还改变了上述
单位从 512 字节到 1024 字节。
这日期 和 次> 字段中 -l 格式仅针对 POSIX 语言环境指定。 作为
请注意,格式在其他语言环境中可能会有所不同。 没有定义这一点的机制是
出现在本卷 POSIX.1-2008 中,因为合适的载体是消息传递系统;
也就是说,格式应指定为“消息”。
未来 如何前往
允许 -f 忽略 -A, -g, -l, -n, -o及 -s 将来可能会删除选项
版。
使用 onworks.net 服务在线使用 lsposix