如何查找ls -l中的字段的含义


9

我的问题不是每个字段的含义,而是要确定每个字段的含义。

手册页仅声明-l使用长列表格式,而没有描述长列表格式的含义。


1
不同的操作系统将具有不同的手册页。您指的是什么操作系统?
杰夫·谢勒


不能重复。
monzie

我看不出这是题外话。原因明确指出“唯一的例外是关于在哪里可以找到正式文档的问题”,这正是该问题的含义。
Calimo

Answers:


12

在GNU coreutils实现的手册页末尾ls(在Linux系统和其他一些Unices上可以找到):

SEE ALSO
       Full documentation at: <http://www.gnu.org/software/coreutils/ls>
       or available locally via: info '(coreutils) ls invocation'

通过在线手册的链接,您可以看到标有“列出了哪些信息”的部分,其中除其他内容外,它还详细描述了长输出格式。

在大多数其他系统上,该ls手册是独立的,描述了长格式。例如OpenBSD ls(1)手册

无论您使用的是哪种Unix,该ls手册都会保存您所需的信息,或者会参考其他相关的手册或包含详细信息的在线文档。如果不是,则应将其报告为文档错误。


仔细检查命令的选项是危险的,因为许多命令具有非标准扩展名,它们很可能在不同的Unices中以不同的方式实现,甚至取决于恰好安装该工具的版本而以不同的方式实现。什么你想要做的是阅读手册系统。

如果手册未明确或通过参考某些其他文档来确切描述选项的功能或格式,那么,正如我在上文所述,这将被视为文档错误。


3

我的ls手册页为我提供了有关长格式的完整信息。我猜这在所有系统上都必须相同。向下滚动,也许您会找到所需的所有信息

长格式

如果指定了该-l选项,则将为每个文件显示以下信息:文件模式,链接数,所有者名称,组名,文件中的字节数,缩写的月份,每月的上次修改日期,小时文件上次修改的时间,分钟文件的最后修改时间和路径名。另外,对于每个显示其内容的目录,目录中文件所使用的512字节块的总数单独显示在一行上,紧接在目录中文件的信息之前。如果文件或目录具有扩展属性,则该-l选项打印的权限字段后跟一个' @'字符。否则,如果文件或目录具有扩展的安全性信息(例如访问控制列表),则由-l选项后跟一个' +'字符。

如果文件的修改时间在过去或将来超过6个月,则显示上次修改的年份,以代替小时和分钟字段。

如果所有者或组名不是已知的用户或组名,或者-n给出了选项,则会显示数字ID。

如果文件是字符特殊文件或块特殊文件,则文件的主要和次要设备号将显示在大小字段中。如果文件是符号链接,则链接到的文件的路径名前面带有' ->'。

该选项下打印的文件模式-l包括条目类型,所有者权限和组权限。条目类型字符描述文件的类型,如下所示:

  • b 阻止特殊文件。
  • c 字符特殊文件。
  • d 目录。
  • l 符号链接。
  • s 套接字链接。
  • p 先进先出
  • - 常规文件。

接下来的三个字段分别是三个字符:所有者权限,组权限和其他权限。每个字段具有三个字符位置:

  1. 如果为r,则文件可读;否则为。如果为-,则无法读取。
  2. 如果为w,则文件可写;否则为。如果为-,则不可写。
  3. 适用以下条件中的第一个:

    • S如果具有所有者权限,则该文件不可执行,并设置为set-user-ID模式。如果在组权限中,则该文件不可执行,并设置为set-group-ID模式。

    • s如果具有所有者权限,则该文件是可执行文件,并且设置了设置用户ID模式。如果在组权限中,则该文件是可执行文件,并且设置了setgroup-ID模式。

    • x 该文件是可执行文件,也可以搜索目录。

    • -该文件既不是可读,不可写,可执行的,也不是set-user-ID,set-group-ID模式或粘性的。(见下文。)

    接下来的两个仅适用于最后一组中的第三个字符(其他权限)。

    • T设置了粘性位(模式1000),但没有执行或搜索权限。(请参阅chmod(1)sticky(8)。)

    • t粘性位已设置(模式1000),并且可搜索或可执行。(请参阅chmod(1)sticky(8)。)


4
这当然是不是在所有系统上相同。此外,某些随机系统上的手册可能与用户使用的本地计算机无关。例如,Solaris具有文件类型P(事件端口),系统上的手册未提及。
库萨兰达

1
Solaris还具有一个文件类型D(门),足以引起我的兴趣。我认为它类似于烟斗。
马克·斯图尔特

1
@Mark- Solaris“ ls”手册页中的“入口就是一扇门”(您的评论激起了我的兴趣)。

2

考虑使用info命令,如中所示info ls。这里的许多命令比手册页中的文档详细得多。在这种情况下,您将在@Kusalananda的答案中的链接中获得同一文档的脱机版本。您可以info -k <search term>用来搜索信息页面。

查找帮助的另一种方法是apropos <search term>命令,该命令搜索手册页的标题和描述以帮助您找到所需的内容。这可以帮助您找到手册页的所有部分,ls在我的系统中,它们是第1部分(默认值)和1p。man 1p ls具有有关输出格式的信息。


1
但是,该info命令仅在具有GNU实用程序的系统上可用。
Kusalananda

1
是的,但这是很多系统。
bewilderex63 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.