Linux文件属性与类型

本文详细介绍了Linux系统中的文件属性,包括Inode、文件类型(如普通文件、目录、链接、设备文件等)、权限设置以及文件链接数等。通过实例和命令展示了如何查看和理解这些属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux文件属性概述

在Linux 系统中,文件或目录的属性主要包括:索引节点(Inode)、文件类型、权限属性、链接数、所归属的用户和用户组、最近修改时间等内容。每个后面都会展开细讲。

## 执行1s-lhi 命令可以显示目录下内容的常见属性信息,示例如下:
[root@localhost ~]# ls -lhi
total 8.0K
33574979 -rw-------. 1 root root 1.5K Aug 17 15:28 anaconda-ks.cfg
33575027 drwxr-xr-x. 2 root root    6 Aug 18 20:55 sky
33634575 -rw-r--r--. 1 root root   48 Aug 20 11:19 sky.txt
​
​
# 每一列的含义
33634575      Inode索引节点编号(相当于人的身份证号、全国唯一)
              系统读取文件时首先通过文件名找到Inode号码,然后才能读取到文件内容。
-rw-r--r--.   文件类型及权限  .是与SELinux相关的一个标识
1             文件硬链接个数,相当于超市多个入口,可从不同入口进入文件,还可以互为备份
root          文件所属用户
root          所属组
6             文件大小
Aug 18 20:55  时间戳:文件最新修改的时间mtime
sky.txt       文件或目录名 #注意,文件名不算文件属性

Linux文件类型介绍

Windows 系统是通过扩展名(如.jpg、.avi、.docx等等)来区分不同文件类型的,如果扩展名错误,或者没有扩展名,则会导致文件无 法直接打开。

Linux 不同于 Windows ,Linux 系统不会根据扩展名来区分文件类型,而是通过为文件设定属性的特殊方式来区分文件类型的。但是 Linux 系统中也会包含各种带有扩展名的文件,这此文件可能来自于 Windows 及其他系统,也有部分来自Linux 系统本身,但这些文件的扩展名,并不代表文件的类型,这些扩展名只是为了让用户更容易区分文件类型,更易读,仅此而已。

-rw-r--r--.   
# 第一个字符的含义即文件类型,后9个为文件权限符号。详见后面权限管理章节
# linux中一切皆文件,文件类型包括:
-:regular file,普通文件(文本,二进制,压缩,图片等)
d: directory,目录
l:link,软连接文件,类似快捷方式,指向文件实体
c:character,字符设备文件 比如:打印机,终端 比如/dev/tty1
b:block,块设备文件 比如:磁盘 u盘 光驱  比如/dev/sda1 /dev/sda2 
s:安全套接字文件,socket 进程间通信时会用到
p:管道文件,named pipe
​
# 重点:- d l
​

1、普通文件

特征:- 开头,按文件内容,大略可分为三类

1)(纯)文本文件(ASCII):此类文件的文件内容可以直接读取到数据,例如,字母、数宇、特殊符号等。可以用 cat 命令读文件,比如 Linux 系统里的配置文件几乎都是这种类型。

2)二进制文件 (binary):Linux 中的常见命令就属于这种格式。例如,cat 命令就是一个二进制文件

3)数据格式文件(data):有些程序在运行的过程中会读取某些特定格式的文件。那些特定格式的文件即称为数据文件。例如,Linux 在用户登录时都会将登录的数据记录在/var/log/wtmp (last 命令的数据库文件)文件内,该文件是一个数据文件,可通过last 命令读取出来。但如果使用 cat 命令读取则会读出乱码。因为它属于一种特殊格式的文件。

2、目录文件

特征:d开头

3、符号链接(软链接)文件

特征:l开头

# 创建软链接命令
ln -s 源文件名 链接名
不加-s是硬链接
​
# 例
[root@db01 /app]# ll
total 0
lrwxrwxrwx  1 root root  17 Jul 18 15:53 mysql -> /app/mysql-5.6.50
drwxr-xr-x 13 root root 205 Jul 18 16:02 mysql-5.6.50


4、字符设备、块设备

比如:查看/dev下的都是这类设备
[root@localhost ~]# ll /dev
brw-rw---- 1 root disk      8,   0 Jul 18 16:15 sda   //b:块设备,如磁盘、光驱
crw-rw-rw- 1 root tty       5,   0 Jul 18 16:15 tty   //c:一般典型的文件就是串行端口的接口设备,如猫等串口设备
crw--w---- 1 root tty       4,   0 Jul 18 16:15 tty0
crw--w---- 1 root tty       4,   1 Jul 18 16:16 tty1


5、socket文件

比如,当启动数据库软件 MySQL 服务时,会产生一个mysql.sock 文件。在这个文件的属性里,第一个字符是s,表示是套接字文件。

mysql客户端可以通过socket文件连接服务端。(见mysql章)

[root@db01 /app]#  ll /tmp
total 4
srwxrwxrwx  1 mysql mysql   0 Jul 19 16:35 mysql.sock
​
[root@db01 ~]# ll /dev/log
srw-rw-rw- 1 root root 0 Jul 18 16:15 /dev/log

6、管道文件

管道文件(FIFO)也是一个特殊的文件类型,主要用于解决多个程序同时访问一个文件所造成的错误,第一个字符为p。 FIFO是 First-In First-Out 的缩写。了解即可或者千脆略过,运维工作中极少涉及它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值