ls -al
命令显示以下输出; -rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe
前面显示中的所有字段是什么?
#1 楼
按输出顺序;-rwxrw-r-- 1 root root 2048 Jan 13 07:11 afile.exe
文件权限(
-rwxrw-r--
),(硬)链接数(
1
),>所有者名称(
root
),所有者组(
root
),文件大小(以字节为单位)(
2048
),Jan 13 07:11)和
文件/目录名称(
afile.exe
)文件权限显示如下;
第一个字符通常是
-
,l
或d
。 d
表示目录,-
表示文件,l
是符号链接(或软链接),其他字母用于其他类型的特殊文件三组字符,三次,表示所有者,组的权限其他:
r =可读
w =可写
x =可执行文件(对于文件)或可访问文件(对于目录)
之后可能是具有扩展权限的其他字符,例如标记有
+
的Linux ACL。在您的示例-rwxrw-r--
中,这意味着显示的行是:常规文件(显示为
-
)可读,可写且可由所有者执行(
rwx
)可读,可写但不能按组执行(
rw-
)可读但不可写或由其他执行者(
r--
)执行/>硬链接数表示索引节点具有的名称数,即,使用不带ln
选项的-s
创建的链接。评论
有两种以上的文件类型。 -不适用于非目录,适用于常规文件,具有不止r,w和x权限。在大多数系统上,第一个字段还用于指示是否存在其他属性,例如ACL,安全属性或其他扩展属性。还要注意,对于符号链接,符号链接的目标也显示在ls -l的输出中。
–StéphaneChazelas
13年11月29日在21:06
第一个字符可以具有不同的值(例如b,D和p`)。维基百科上有完整的解释。
–ashes999
14-10-14在13:53
字段数解释不清。对于文件,这意味着硬链接数。对于目录:目录内的目录数+此目录本身+ 1。
– yanpas
16-3-19在19:20
链接数是什么意思?谢谢。
–tommy.carstensen
17年1月6日在11:41
info ls有更多信息
–ctrl-alt-delor
18 Mar 5 '18 at 9:21
#2 楼
“ ls”命令的输出取决于“ ls”的版本,使用的选项,使用的平台等。从您的示例中可以看出,您是通过典型的un * x(例如Linux)使用它的,并可能使用典型的现代“ ls”版本。在这种情况下:-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe
?UUUGGGOOOS 00 UUUUUU GGGGGG #### ^-- date stamp and file name are obvious ;-)
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | \--- File Size
| | | | | | | \-------- Group Name (for example, Users, Administrators, etc)
| | | | | | \--------------- Owner Acct
| | | | | \---------------------- Link count (what constitutes a "link" here varies)
| | | | \--------------------------- Alternative Access (blank means none defined, anything else varies)
| \--\--\----------------------------- Read, Write and Special access modes for [U]ser, [G]roup, and [O]thers (everyone else)
\------------------------------------- File type flag
我不确定为什么列出的示例文件的链接计数如此之高。有些平台对构成“链接”的概念有些奇怪。这些通常包括硬链接和符号链接,以及目录条目(这就是目录通常具有较高链接数的原因-其父级具有一个链接,该目录在
.
条目中具有指向自身的链接,以及其每个子目录通过..
链接回来。某些版本和/或命令行标志将列出使用的块数而不是字节数;块大小为1024字节的文件系统会将所有大小最大为1024字节的文件列出为“ 1”,表示使用了1个块,从1025到2048为“ 2”列出了2个块,依此类推。但是默认情况下(在没有显式使用命令行选项的情况下)列出块大小在大多数现代的un * x机器上很少见。
特殊/替代访问标志通常是空格,但是在某些平台上,它可能用于指示存在特殊/替代访问模式(例如WIN32上的ACL和安全描述符等),并且变化很大-请查阅手册,手册页,信息工具或其他内容。
权限(模式)标志(UUUGGGOOO)是三组三个字符,其中第一组是“用户”(即所有者),第二组是“组”,第三组是“其他”(即其他每个人) ;既不是所有者也不是组的任何人)。每组中的三个许可权标志通常是
r
或-
,这表示用户/组/其他人可以读取文件(r
)或不能读取文件(-
),其后是w
或-
,指示它们是否可以写入文件(您可以拥有文件可以写,但不能读,听起来可能很奇怪!),第三个字符是其他模式的“ catch-all”标志,通常是类似于x
的execute(对于目录,这意味着您可以尝试以访问目录内容),或无。有时,对于setuid和/或setgid程序或其他较不常见的字符,您可能会遇到-
或s
。 最后,第一个字符是文件类型;请参见“ ls”文档以获取将显示的模式字符。通常是以下之一:用于目录的
S
,用于符号链接的d
(硬链接通常显示时没有其自身的特殊字符)或用于普通文件的l
。各种文件系统还有许多其他但很少见的文件类型。前十个字符(文件类型和权限)在Wikipedia上讨论。再次,您的文档将告诉您命令所支持和显示的文件类型。顺便说一句,如果找不到“ ls”本身的手册页(“ man ls” /” info ls”),请尝试查看“ coreutils”包(“ info coreutils”)。另请注意,在较常见的平台中,Microsoft平台往往无法很好地转换为“ ls”输出,因此,根据您的“ ls”版本的不同,您可能会在输出中看到奇怪的行为,标志或其他异常信息。已编译,与之链接的对象等。
另一个警告:文件时间戳记通常是文件的上次修改日期/时间,而不是文件的创建时间。实际上,在一个非x-ish的文件系统上,没有文件创建时间的记录。 ctime字段并不像在FAT / NTFS文件系统上那样表示“创建时间”,而是表示“ inode [C] hange时间”,即上一次修改inode的时间。在两个系统上,“ mtime”(最后经过[M]修改的时间)和atime(最后经过[A]处理/读取的时间)时间戳是相同的-尽管精度(例如FAT的粒度为2秒)和时区可能会有所不同。
评论
哪个系统的链接计数中包含符号链接?
– Celtschk
2014年7月6日在7:24
抱歉,我不清楚。我知道没有系统在链接数中包含符号链接。.我只表示“什么构成'链接'”。例如,在Windows中,“外壳链接”被视为链接,但是大多数控制台命令会将其视为普通文件。这包括ls,它将不包括在链接计数中。据我所知,除非对“ ls”的来源进行了其他修改,否则它仅报告操作系统报告的链接计数。
– C. M.
2014年7月6日14:30
包括符号链接和.lnk文件将需要遍历整个目录尝试。仅列出一个文件。这将是waaaaaaaaaaaaaaay慢。它仅包括硬链接。这是文件具有的目录条目的数量。 (它由垃圾收集器使用。当引用计数变为零时,将删除该文件。)
–ctrl-alt-delor
18 Mar 5 '18在9:26
通常,我对操作系统(OS)和文件系统(FS)的理解是可以达成共识的,但是我不时看到某些操作系统和FS的一些奇怪之处。虽然,它并不总是OS / FS的一部分。有时,这些奇怪的结果是尝试将工具从一个操作系统移植到另一个操作系统,然后尝试针对新平台进行调整(例如EXT和FAT / NTFS之间的CTIME字段中的差异)以及NTFS实现了不同种类的“链接”(shell链接,重新解析点等),因此很难给出准确而统一的定义。
– C. M.
18年3月14日在23:18
附加说明:目录的文件大小仅是目录元数据的大小,而不是目录下文件的总大小。
– Wisbucky
18年5月22日在21:18
#3 楼
在GNU系统上,它在ls
信息页面中有非常详细的描述。找到它所要做的一切:只需打开man ls
并在最后找到完整文档的链接:info coreutils 'ls invocation'
。这里引用了它: />
评论
谢谢!在列出/ dev /时,我不确定第一列中c的“字符特殊文件”的含义
–布鲁诺·布鲁诺斯基(Bruno Bronosky)
18年6月29日在19:42
#4 楼
第一列是文件模式,第二列是文件具有的链接号,第三列和第四列是所有者的名称和文件所属的组。下一栏说明文件的字节数(某些ls
实现具有-h
选项,以便以更用户友好的形式查看此信息)。最后两列指示时间戳记和文件名。您已阅读手册页以获取更多信息。
评论
请参阅ls -l命令输出中的文件许可权和所有者之间的数字是多少?有关链接计数的更详细(详细)讨论。不要忘了使用“ ls -alh”来获得更可读的文件大小输出