linux文件属性及 ls -l 命令输出结果详解
目录
一、ls -l 输出的内容概略
二、ls -l 输出内容详解
1、命令
2、inode索引节点编号
3、文件类型
4、文件属性
5、目录或链接的个数
6、所有者及组
7、文件大小
8、文件最后修改时间
9、文件名及颜色
一、ls -l 输出的内容概略
注:本图片转自:https://blog.51cto.com/13447608/2151610 ,图画的很好,我就懒得画了,直接转过来啦
二、ls -l 输出内容详解
1、命令
一般使用ls -l命令,更全的输出信息使用,a表示全部,h表示文件大小以人类易读的形式给出,i表示索引节点,l表示长列表形式。
ls -ahil
2、inode索引节点编号
- inode中存放了文件的创建者、创建时间、文件大小、文件存放的块的位置等信息,总之除了文件名和文件内容外其他的信息都存在这个inode中。
- 每个文件都有一个inode号码。
- inode号码相同,说明这些文件是硬连接的关系。
- 其他inode知识这里不再详述。
3、文件类型
该列表示文件的类型,文件类型有:
- “-” 表示普通文件,如*.txt,*.c,*.h
- “d” 表示目录,directory
- “l” 表示软链接文件(ln -s 创建的),link file
- “p” 表示pipe管道文件
- “b” 表示块设备文件,block device
- “c” 表示字符设备文件,char device
- “s” 表示socket套接字文件,用于实现两个进程间通信
4、文件属性
红框中圈出来的部分,共9个字符来表示,3个一组,共3组,拿最后一个test目录来说:[rwx][r-x][r-x],这3组分别表示文件所有者的权限,组的权限和其他用户的权限。
- r(read,读权限) :对文件来说,具有读取文件内容的权限;对目录来说,具有浏览目录及子目录的权限。
- w(write,写权限):对文件来说,具有修改、删除文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
- x(execute,执行权限):对文件来说,具有执行文件的权限;对目录来说,该用户具有进入目录的权限。
- - :表示无任何权限。
- -----------------------------------------------------------------------------------------------------------------
- 还有3个特殊权限,分别是set uid(suid),set gid(sgid),粘滞位sticky(t);它们分别用来设置文件所有者(属主)的权限、组的权限,其他权限;这样文件权限共有9+3=12位(bits)来表示,但是显示到具体的字符上,文件权限只用9个字符来表示,因为3个特殊权限位合并到前面已有的普通权限位上了,这样就形成了复合权限的9个/位字符表示方式。
- set uid(suid):只针对命令和二进制程序。
- 只在执行时权限才有效。
- 二进制程序需要有x可执行权限配合使用,即x位是s才可以。
- 属主x权限位上有x权限,增加suid权限后,x变为s【小写s】。
- 属主x权限位上无x权限,增加suid权限后,x变为S【大写S】。
- 增加suid权限后,原来没有属主权限(如root等)的其他普通用户也拥有了属主的权限,这样普 通用户就可以像属主一样操作这个程序或命令,类似与把这个命令或程序的属主权限共享出来了 一样,所有用户都可以使用,是不是有点危险感,比sudo还要可怕。
- set gid(sgid):针对用户组的权限位。
- 可针对命令、二进制程序、目录等文件,比suid范围要广。
- 二进制程序需要有x可执行权限配合使用,即x位是s才可以。
- 属组x权限位上有x权限,增加sgid权限后,x变为s【小写s】。
- 属组x权限位上无x权限,增加sgid权限后,x变为S【大写S】。
- 增加sgid权限后,执行命令的任意用户可以获得该命令执行期间所属组的所有权限。
- 粘滞位sticky(t):针对除了属主和属组外其他用户的权限位。
- 只针对目录有效,其他文件即使设置了也没用,直接被内核忽略了。
- 其他用户x权限位上有x权限,增加sticky权限后,x变为t【小写t】。
- 其他用户x权限位上无x权限,增加sticky权限后,x变为T【大写T】。
- 目录增加sticky权限后,目录下的所有文件都可以被任何人读写,所有文件都是共享的。
- 目录增加sticky权限后,只有属主和root用户才可以删除该目录下的文件,其他人不能。
- 目录增加sticky权限后,用户自建的目录不会继承sticky权限。
下面演示了3个特殊的权限,详细的关于权限修改等问题,请看我的关于权限修改的博文。
5、目录或链接的个数
- 对于普通文件来说,该值表示的是链接数目,即硬链接或软链接的数据。
比如:copy_my.sh和my.sh的inode号相同,说明这2个文件互为硬链接,故他们的链接数均为2。
- 对于目录来说,该值表示该目录下所有目录的总数,即该值=2+该目录下所有目录数目。注:不含该目录下目录的子目录。
其中2表示的是当前目录下的“.目录”和“..目录”这2个目录,所有目录下都会自动创建这2个目录,所以这个2是常数。linux下凡是名字以点'.'开头的文件都是隐藏文件。“.目录”表示的是当前目录,“..目录”表示上一级目录。
“.目录”的目录个数为3,因为当前目录下有1个test目录,所以该值=2+1=3;“..目录”的值是43,说明上一级目录除了2个固定目录外还有43-2=41个目录。
test目录的目录数目为2,因为它下面无目录,所以该值=2+0=2。
6、所有者及组
- 第一个book,即文件的所有者或创建者(owner),修改属主可以用命令:chown
- 第二个book,即文件所在的组(group),修改属组可以用命令:chown
7、文件大小
- 单位为字节(byte),加入-h参数后会把字节数转换成KB或MB或GB等容易感性认识的值。
- 对于普通文件来说,表示该文件的大小。
- 对于目录来说,仅仅表示该目录(可以认为是一个空文件夹,不含里面其他文件的大小)占用的磁盘空间大小,一般都是4096或4K。
8、文件最后修改时间
表示该文件或目录最后的修改时间。
9、文件名及颜色
- 文件名,文件的名字。linux不是以文件名中文件的后缀来判断文件的类型的,但是一般专用文件还是用专用的后缀较好,这样容易识别文件的格式。
- 文件名的颜色:一般不同类型的文件名的颜色是不同的,一般默认有如下的约定:【修改了shell配色的情况除外】
1)蓝色代表目录/文件夹
2)浅蓝色代表链接文件
3)绿色代表可执行文件
4)灰白色代表一般文件
5)红色代表压缩文件
6)黄色代表设备文件
本文前几天前就一直想写了,想着直接转载一篇完事,但是当写起来后,发现还是自己一步一步的做,一点一点的写比较好,主要是文件权限部分内容较多,涉及的知识要查找许多资料,这一查一写就是两天多时间,回头看看,这样做还是很值得的。
2020-02-21~2020-02-23@北京
linux文件属性及 ls -l 命令输出结果详解相关推荐
- unix/linux命令“ls -l”选项输出结果详解
from: http://hi.baidu.com/hoxily/item/12e2a02d03f77e0942634a8e unix/linux命令"ls -l"选项输出结果详解 ...
- Linux中ls -l命令展示信息详解
Linux中ls -l命令展示信息详解 在Linux系统中,ls -l命令是用以列表的形式来查看当前目录下的文件或目录,下面就让我们一起来看看展示的信息是什么意思吧 以CentsOS7为例子 [roo ...
- linux管道命令详解,Linux系统中的管道命令的用法详解
Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...
- linux 移动剪切命令,Linux中vi的复制命令的用法详解
在Linux系统中,使用VI编辑的时候经常用到的操作就是复制粘贴,那么下面由学习啦小编为大家整理了linux中vi的复制命令的用法详解的相关知识,希望对大家有帮助! Linux中vi的复制命令的用法详 ...
- linux下实现ls -l命令
ls -l命令: 输出包含了文件类型,文件权限,文件所有者,文件所在组,文件大小,硬连接数,修改时间的文件信息流. stat函数: 参数: 需要两个参数,一个文件的位置的字符串,一个定义过的stat类 ...
- linux下文件的total是啥,linux中,ls -l命令显示的total的含义。
当在linux里使用ll或者ls -l命令查看文件详情时,会在第一行看到如下的字样: total 20 drwxr-xr-x 8 user rnd 134 Apr 27 04:40 ./ drwxr- ...
- Linux ls -l文件列表权限详解
1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- 2 root adm 4096 2013-08-07 11:03 apache2 ...
- linux系统useradd及周边命令和概念详解
在Linux 系统中,所有的用户和组像一个国家.如果国家要繁荣昌盛的话,需要治理得当,需要有主席或者总统,以及地方官员和老百姓组成.在linux 中如果你对安全需求比较苛刻,完全可以限制用户的各种行为 ...
- 思科网络设备 show version命令输出内容详解
show version show version命令可用于检验和检修启动过程中使用的一些基本硬件和软件组件.验证设备的内存.接口和许可 Router#show version Cisco IOS S ...
最新文章
- 怎样把 Boot Camp 里 Windows 的色温调节得和 Mac OS X 一致
- 秒懂边缘云丨快速入门边缘云
- 推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager
- ZOJ 3826 Hierarchical Notation 模拟
- android 评分条 RatingBar 使用及自定义
- python从网络时间服务器获取并打印当前时间以及pip安装ntplib的一次体验
- mysql mariadb 10.4_MariaDB 10.4.1发布,流行的MySQL分支版本
- 【python】为本地乌云漏洞库/知识库生成目录
- oracle数据库中sql语句性能提升之to_char改造
- What is DevOps?
- centos7的firewall-cmd怎么让指定ip能访问指定端口?
- Linux下黑白棋c语言程序,黑白棋c语言程序.doc
- pagination分页(支持首页,末页,跳转)
- Spring cloud搭建HSF框架,整合mybatis、redis、rabbit
- mindoc快速搭建教程
- 如何把照片转成pdf文件,支持合并转换
- AcrGIS 做成本距离分析时提示ERROR 999999:无法启动配置 RasterCommander.ImageServer
- 设计模式-创建者模式篇
- 猴子定律--如何跳出你深陷的棋局看趋势
- Scapy的介绍(一)