文件属性及类型


文件管理命令--替换tr

## tr只能按照字符 一一对应取替换,如果出现相同的字符,那么后面的赋值会将前面的赋值覆盖
tr '被替换的内容' '替换内容' < 文件名


[root@moban ~]# tr 'name' 'address' < 611. 
addr=10.0.0.7

n == a..
a == d
m == d
e == r         一一对应

# sed 语法                   ----------不一一对应,直接整体替换。      
sed 's/被替换内容/替换内容/g' 文件名
[root@localhost ~]# sed 's///g' 2.txt
[root@localhost ~]# sed 's/name/address/g' 2.txt
address=10.0.0.100

文件的属性

文件类型字符 文件类型
- 普通文件
d directory 目录文件
c char 字符设备 (键鼠,bash)
b block 块设备
l link 链接文件
s socket 安全 (套接字)文件 用于网络连接通信
p pipe管道文件

文件类型  文件权限	 se防护墙  硬链接数    创建用户   所属组   文件大小     文件创建(修改)时间  文件名
-        rw-r--r--   .         1          root     root        15         Apr  7 16:36       611.
		r = = 读取
		w = = 写入
		x = = 执行
		三个为一组,用户,组,全部用户

image-20240407165027978


使用file命令来鉴别文件类型

## 使用方法
file  文件

## 查看文件类型
[root@localhost ~]# file /dev/null
/dev/null: character special
[root@localhost ~]# file /dev/sda1
/dev/sda1: block special
[root@localhost ~]# file /run/systemd/initctl/fifo
/run/systemd/initctl/fifo: fifo (named pipe)
[root@localhost ~]# file /dev/log
/dev/log: socket
[root@localhost ~]# file /root/zls
/root/zls: directory
## 文件拓展名在liunx中无意义。仅仅是作为区分

系统链接文件

# 	元数据:用来描述数据的数据
# 	真实数据:用户产生的数据(文件内容)
# 	在Linux中,磁盘存储数据,被分为两部分
# 	文件存储在磁盘上
## 磁盘存储数据,被分为两个部分
##   一个部分用来存储元数据:inode          ---------- ll-i  查询inode号
##   一个部分用来存储真实数据:block         ----------block 默认为4k一个单位
##   inode号:文件元数据存储在磁盘中的房间号

# 总结
磁盘存储数据会被分为两个部分:
一部分存储元数据,存储元数据的部分叫做inode,每个文件都有一个自己的inode号,这个inode号可以理
解为文件存储在磁盘上的房间号
一部分存储真实数据,存储真实数据的部分叫做block,一个block默认是4k

image-20240407170521228

image-20240407170539580


软连接

软连接会创建一个文件的快捷方式,软连接的inode号是全新的,指向源文件 block

命令   
ln -s  源文件  目标文件

[root@moban ~]# ln -s 611. 711.
[root@moban ~]# ll
total 4
16797782 -rw-r--r--. 1 root root 15 Apr  7 16:36 611.
16797774 lrwxrwxrwx. 1 root root  4 Apr  7 17:10 711. -> 611.

总结:
1)创建软链接时,直接接一个已存在的目录,以源文件名字来命名新的文件名创建到指定目录下
2)创建软链接时,指定一个目录下的文件,如果该文件不存在,则创建软链接并改名
2)创建软链接时,指定一个目录下的文件,如果该文件存在,则报错,无法创建

#应用场景
1)软件升级
2)代码发布
3)不方便移动的目录
4)数据回滚、版本回滚
5)程序读取

image-20240407172452476


硬链接

若一个 inode 号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多
个别名,如下图所示 hard link 就是file的一个别名,他们有共同的 inode

## 创建硬链接方式
ln 源文件(要给谁创建硬链接) 目标文件(硬链接的位置)
[root@localhost ~]# ll -i
total 24
16797812 lrwxrwxrwx. 1 root root 11 Apr 7 23:35 123 -> /root/1.txt
16797823 -rw-r--r--. 6 root root 4 Apr 7 23:37 1.txt
16797823 -rw-r--r--. 6 root root 4 Apr 7 23:37 abc
16797823 -rw-r--r--. 6 root root 4 Apr 7 23:37 abc1
16797823 -rw-r--r--. 6 root root 4 Apr 7 23:37 abc2
16797823 -rw-r--r--. 6 root root 4 Apr 7 23:37 abc3
16797823 -rw-r--r--. 6 root root 4 Apr 7 23:37 abc4

image-20240407172634532


软连接与硬链接的对比

区别
命令 ln -s ln
inode 不相同 相同
源文件丢失是否可用 不可
跨分区创建 支持 不支持
目录 支持 不支持
文件类型 l链接文件 普通文件
# 查看磁盘命令
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 8913920 1609880 7304040 19% /
devtmpfs 487048 0 487048 0% /dev
tmpfs 497948 0 497948 0% /dev/shm
tmpfs 497948 7748 490200 2% /run
tmpfs 497948 0 497948 0% /sys/fs/cgroup
/dev/sda1 508580 122216 386364 25% /boot
tmpfs 99592 0 99592 0% /run/user/0

# -h以人类可读的方式显示,磁盘大小加上了单位
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.6G 1.6G 7.0G 19% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 497M 120M 378M 25% /boot
tmpfs 98M 0 98M 0% /run/user/0

# -i 查看inode可用空间
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 4462080 34791 4427289 1% /
devtmpfs 121762 380 121382 1% /dev
tmpfs 124487 1 124486 1% /dev/shm
tmpfs 124487 699 123788 1% /run
tmpfs 124487 16 124471 1% /sys/fs/cgroup
/dev/sda1 256000 326 255674 1% /boot
tmpfs 124487 1 124486 1% /run/user/0

[root@localhost ~]# df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 4.3M 34K 4.3M 1% /
devtmpfs 119K 380 119K 1% /dev
tmpfs 122K 1 122K 1% /dev/shm
tmpfs 122K 699 121K 1% /run
tmpfs 122K 16 122K 1% /sys/fs/cgroup
/dev/sda1 250K 326 250K 1% /boot
tmpfs 122K 1 122K 1% /run/user/0