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

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

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

一、文件类型

表示该文件的类型:

* “-”表示普通文件;
* “d”表示目录;
* “l”表示链接文件;
* “p”表示管理文件;
* “b”表示块设备文件;
* “c”表示字符设备文件;
* “s”表示套接字文件;
二、文件属性

以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文件,其创建者/所有者具有可读可写可执行的权限,其创建者/所有者所在的组的其他用户具有可读可写可执行的权限,其他组的其他用户则具有可读可执行但不可写的权限。

三、目录/链接个数

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

*

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

*

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

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

四、所有者及组

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

五、文件大小

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

六、修改日期

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

七、文件名称

文件名,无需多说。

八、字体颜色

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

* 灰白色表示普通文件;
* 亮绿色表示可执行文件;
* 亮红色表示压缩文件;
* 灰蓝色表示目录;
* 亮蓝色表示链接文件;
* 亮黄色表示设备文件;
当然,这里需要使用系统缺省的配色方案。如果你自定义了shell的配色方案,则有可能与上面的定义不一致。

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

技术
©2019-2020 Toolsou All rights reserved,
mysql 递归查找父类的所有子节点Java Thread之Sleep()使用方法总结Spark SQL-编程ElementUI中获取select 的label值指定位置输出字符串--PTAkeras数据生成器--数据增强TypeScript-多态篇org.postgresql.util.PSQLException 处理记录(精华)2020年8月13日 C#基础知识点 windform实现双色球(精华)2020年7月30日 微信小程序 模块的使用