首页 Linux

ls -l显示结果的详细含义

2025-04-09 15:18 csdn

摘要:本文介绍了Linux中使用ls-l命令查看文件和目录详情时的各列信息,包括文件类型(如普通文件、目录、链接文件等)、文件权限(rwx及SUID、Sticky特殊权限)、链接个数、所有者和组、文件大小、修改日期以及文件名。此外,还提到了颜色编码和可执行文件的星号标识。

在linux下使用“ls -l”或者“ls -al”或者“ll”命令查看文件及目录详情时,shell中会显示出好几列的信息。平时也没怎么注意过,今天忽然心血来潮想了解一下,于是整理了这篇博客,以供参考:

首先给出一张典型的显示结果:

9ba4f9a3617e0df64c7725e66367aed6

下面对其中的每一列进行详细的分析:

 

一、文件类型

2252e1fccfdd6e57236c80f48a19a1e0

表示该文件的类型:

“-”表示普通文件;

“d”表示目录;

“l”表示链接文件;

“p”表示管理文件;

“b”表示块设备文件;

“c”表示字符设备文件;

“s”表示套接字文件;

 

二、文件属性

33e6c0e1abf872d44b0f85460ad4bf0d

以back_init文件为例,其属性可分为三段:[rwx][rwx][r-x],其中:

第一段表示文件创建者/所有者对该文件所具有的权限,

第二段表示创建者/所有者所在的组的其他用户所具有的权限,

第三段表示其他组的其他用户所具有的权限。

r(Read,读取权限):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

w(Write,写入权限):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

x(eXecute,执行权限):对文件而言,具有执行文件的权限;对目录来说,该用户具有进入目录的权限。

另外,这里还有2个很特殊的属性,平时不怎么常见,这里也顺带解释一下:

s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

t或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

综合起来可得,对于back_init文件,其创建者/所有者具有可读可写可执行的权限,其创建者/所有者所在的组的其他用户具有可读可写可执行的权限,其他组的其他用户则具有可读可执行但不可写的权限。

 

三、目录/链接个数

701a0a57a290f7f62f1634949255da82

对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减2才等于该目录下的子目录的实际个数。

比如这里的include目录下,其实是没有子目录的,所以应该是0,但是它这里却显示2,这是因为要加上.目录和..目录。在linux下,.目录表示当前目录,..目录表示上一级目录。

这也可以解释上图中第一行的.目录下的3和第二行..目录下的26。因为当前目录下有一个include目录,所以加上.目录和..目录这2个目录就等于3,所以第一行会显示3。而上一级目录共有24个目录,加上上一级目录的.目录和..目录这2个目录,所以这里的第二行显示的是26。

对于其他文件,表示指向它的链接文件的个数。

 

四、所有者及组

1130bdfff106f50aa598c6fe798036e2

表示该文件的所有者/创建者(owner)及其所在的组(group)。

 

五、文件大小

e6f109a1ea169e9d2df6397b505940ef

如果是文件,则表示该文件的大小,单位为字节。

如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。

 

六、修改日期

96a9c25f5cb4166581a709d99cf92513

该文件最后修改的日期时间。

 

七、文件名称

3e42f9ea1ea8821269c1252cefd1ee0e

文件名,无需多说。

 

八、字体颜色

d1d4cf73cacc257c8c1900a46c6210b6

在大多数的linux shell窗口中,还能用颜色来区分不同文件的属性:

灰白色表示普通文件;

亮绿色表示可执行文件;

亮红色表示压缩文件;

灰蓝色表示目录;

亮蓝色表示链接文件;

亮黄色表示设备文件;

当然,这里需要使用系统缺省的配色方案。如果你自定义了shell的配色方案,则有可能与上面的定义不一致。

最后还要说明一点的是,可以看到上述的图片中,back_init文件的后面还带了一个星号(*),这也是linux系统下用于标记可执行文件的另外一种方式。也就是说,凡是文件名后面带了一个星号(*)的,都是在说明这是一个可执行文件。

返回首页
返回顶部