Linux系统如何识别目录文件

Stella981
• 阅读 555

Linux系统如何识别目录文件

本篇文章教大家如何分辨 Linux 中的目录文件,学习 Linux 的人都知道 Linux 的哲学思想那就是一切皆文件。那么在众多的文件中,如何区分出哪个是目录呢?这时就会有人说了我靠颜色区分,靠颜色区分确实不错,在下面的图片中,蓝颜色的就代表目录文件。

Linux系统如何识别目录文件

既然这里提到了颜色,那么就把顺带也提一下其他颜色分别代表什么文件吧。这里蓝色就不再多说了,从图片也都可以看出来,蓝色文件就是目录。绿色的文件一般表示可执行的文件或者是可以执行的程序。白色的文件也是最常见的也就是普通文件了,像很多配置文件就是白色表示的。浅蓝色文件表示链接文件,一般都是通过 ln 这个命令建立出来的,这种类型的文件上面图片也有显示,就是带有箭头指向的那种。红色闪烁文件,这种文件一般表示链接的文件有问题,要么位置改变了,要么就是源文件被删除了。

虽然根据不同颜色区分不同文件算是一种区分目录文件的方法,但是毕竟我们是搞技术的人嘛。这种方法怎么说呢,不是特别高级。那么下面就教大家如何通过 ls 的输出进行区分吧。首先我们都知道 ls 这个命令算是 list 的缩写,意为列出当前目录下所有的文件信息。那么现在我们把重点就放在这个命令输出的第一列上。

$ ll
切换到 /usr/local 目录下执行的这个命令,因为这个目录下类型稍微丰富一点

Linux系统如何识别目录文件

drwxr-xr-x  
lrwxrwxrwx    
-rw-r--r--   
srwxrwxrwx
注意:这里显示的内容是我们把红框中的第一列内容都摘出来了

我们挑出了几个比较有代表性的输出来说明,在上面的输出中可以看到第一列信息很奇怪,有点看不懂的样子,那么今天就来为大家揭晓他们的真实面目。我们拿 drwxr-xr-x 先来举例说明:

d:这块根据上面图片的颜色其实也可以看出来,所以这里就不卖关子了,字母 d 表示的就是目录文件,它是单词 directory 的首字母。

第一组 rwx:第一组 rwx 也就是第 2-4 位表示这个文件的属主所拥有的权限,r 表示 read 读权限,w 表示 write 写权限,x 则表示 execute 执行权限。

第二组 r-x:第二组 r-x 也就是第 5-7 位表示这个文件的属组所拥有的权限,跟上面第一组一样,r 表示 read 读权限,x 则表示 execute 执行权限。中间是写权限,用 - 的话就说明属组没有写这个权限

第三组 r-x:第三组 r-x 表示其他权限,也就是除了文件属主和属组之外的其他用户所拥有的权限,了解了前两组,想必第三组也是很容易就能够理解,这里就不再多做解释。

现在说完了第一个,除了第一位,剩余的 9 位,也就是从第 2-10 位大家肯定都明白了。每一种类型的文件都会包含这三组权限,而对应的权限也只有读写和执行。说完了第一个,现在我们来看看第二行,第二个文件它是以 l 开头的,它的颜色是浅蓝色,从颜色来区分,所以 l 代表的也就是链接文件了,它是英文单词 link 的首字母,一般使用链接文件都是为了方便访问(就像上图中,我创建的链接文件是 mysql,就是因为直接访问 mysql-8.0.21-linux-glibc2.12-x86_64 这个目录的话很不方便,过于长了)。说完了第二行,现在我们来看第三行,第三行真是奇怪了哈,竟然是一个横杠开头,如果你平时有观察的够仔细,那么你会知道其实在 Linux 系统中大部分文件都是这样,因为以横行表示的都是普通文件,也就是随便 touch 一个文件,都会以横杠开头的。最后一行是以 s 开头的一个文件,这种文件不是特别多,但是也是比较常见的类型,这种文件叫做套接字文件,对应英文单词是 socket 。

说到这里其实查看目录文件的方法很简单,通过以上两种方法都可以,并且两种方法也都很简单,尤其是第一种通过颜色就可以区分。虽然本篇文章的内容很基础,但这也是入门必须要学习和掌握的。但其实除了以上两种方法,还有另一种区分的方法就是通过 file 命令,如下:

$ file ./bin/
./bin/: directory

$ file mysql
mysql: symbolic link to mysql-8.0.21-linux-glibc2.12-x86_64

$ file yd.socket.server
yd.socket.server: socket

Linux系统如何识别目录文件

file 命令是用来确定文件类型的,虽然平时用的不多,并且没有上面的方法明了,但是作为 Linux 系统的管理人员,多掌握一些基础的命令还是很有必要的,本文关于 Linux 查看目录的方法就介绍到这里,感谢大家长期以来的支持!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
JOptionPane修改图标
1.在Linux平台下.JOptionPane会显示Java默认的图标,在window平台不显示图标,如何替换这个图标了?2JOptionPane.setIcon(Icon)修改的是内容区域的icon,而不是左上角的Icon.所以需要通过修改Jdialog/Frame的图标来达到修改默认图标的问题.3.代码:if(JOptio
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这