Linux系统文件属性
# -rw-r--r--. 1 root root 0 Mar 16 10:14 1.txt
- 文件类型
rw-r--r--. 文件权限
1 硬链接数量
root 属主
root 属组
0 文件大小
Mar 16 10:14 时间戳
1.txt 文件名或目录名
# 解析
- rw-r--r--. 1 root root 0 Mar 16 10:14 1.txt
文件类型 文件权限 硬链接数量 属主 属组 文件大小 时间戳 文件名或目录名
Linux系统文件类型
# ls -l 文件名 (查看文件)
-rw-r--r--. 1 root root 0 Mar 16 10:14 1.txt
通过这个字符 ↑ 来判断是什么文件类型(文件类型是看第一个字符)
格式 说明
- 普通文件(文本, 二进制, 压缩, 图片, 日志等)
d 目录文件
b 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
s 安全套接字文件, 进程间通信(socket)
p 管道文件
l 链接文件
# file + 文件名 (可以查看文件类型)
系统链接文件
文件有文件名和数据,在Linux上被分成两个部分:用户数据(user data)与元数据(metadata) **用户数据:**文件数据块(data block),数据块是记录文件真实内容的地方,我们将其称为 Block **元数据:**文件的附加属性,例如:文件大小,创建时间,属组,属主...等,我们称其为 Inode 在Linux中, inode 是文件元数据的一部分,但其并不包含文件名, inode 号即索引节点号 文件名仅是为了方便人们的记忆和使用,系统或者程序通过 inode 号寻找正确的文件数据块。
查看磁盘命令
# df 查看磁盘空间
## 查看block(文件的真实类容,一个block是4k 11k
-h human 人性化展示
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.2G 18G 7% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 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
查看inode号
## 查看inode(查看磁盘内容)
-i 展示inode
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9704960 27494 9677466 1% /
devtmpfs 121773 373 121400 1% /dev
tmpfs 124487 1 124486 1% /dev/shm
tmpfs 124487 712 123775 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
Linux有两种链接
- 软连接
什么是软链接?
软链接相当于windows的快捷方式,软链接文件会将inode指向源文件的block
当我们访问这个软链接文件时,其实就是在访问源文件的本身。
1)那么当我们对一个文件创建多个软链接时,其实就是多个inode指向同一个block。
2)那么当我们删除软链接文件时,其实只是删除了一个inode的指向,并不会对源文件造成影响。
3)如果我们删除的是源文件,那么该文件的所有软链接文件都会失效。
软链接的应用场景
1)软件升级 2)代码发布 3)不方便移动的目录 4)数据回滚 5)程序读取
# 软链接 (快捷方式,软连接文件会将inode指向源文件)
ls
-i 查看该文件的inode号
# 创建软链接的命令
ln link 链接 创建链接文件
-s soft 软 创建软链接
ln -s 源文件 链接文件地址
ln -s 源文件 快捷方式名字
# 例子
ln -s 2.txt amusitelanghuixuanamusitelangpao
ln -s 2.txt /tmp/amusitelang
# 软链接受到源文件的影响(如果源文件消失,软连接失效)
ln -s web.txt web.log
## 打开快捷方式
[root@localhost ~]# cat web.log
http://www.driverzeng.com/index.html
http://www.driverzeng.com/1.html
http://post.driverzeng.com/index.html
http://mp3.driverzeng.com/index.html
http://www.driverzeng.com/3.html
http://post.driverzeng.com/2.html
## 删除源文件
[root@localhost ~]# rm -fr web.txt
## 软链接文件失效
[root@localhost ~]# cat web.log
cat: web.log: No such file or directory
- 硬连接
什么是硬链接
若一个inode号对应多个文件名,则称这些文件为硬链接。换句话说,硬链接就是同一个文件使用了多个别名,如下图所示hard link就是file的一个别名,他们有共同的inode
# 硬链接 (如果多个inode号对应多个文件名,则把这些文件称之为硬链接,换句话说是,硬链接就是同一个文件使用了多个别名
# 创建硬链接的命令
ln
# 语法
ln 源文件 链接文件的位置
# 例子
ln 3.txt 3
# 硬链接的inode号与软连接inode号一致
[root@localhost ~]# ls -li
total 20
33575022 -rw-r--r--. 1 root root 0 Mar 16 10:14 1
33575931 -rw-r--r--. 1 root root 8 Mar 16 11:30 1.txt
33575026 -rw-r--r--. 1 root root 61 Mar 15 12:27 1.txt.gz
17181701 drwxr-xr-x. 2 root root 6 Mar 16 10:14 2
33575933 -rw-r--r--. 3 root root 9 Mar 16 11:42 3
33575933 -rw-r--r--. 3 root root 9 Mar 16 11:42 3.txt
33575933 -rw-r--r--. 3 root root 9 Mar 16 11:42 4
## 特性
1.硬链接和源文件的inode号一致
2.硬链接不受源文件影响,即使源文件删除,也不影响硬链接
3.硬链接不能针对目录创建硬链接
4.修改源文件,硬链接也会同步更新,修改硬链接,源文件也会同步更新
5.一个新创建的目录会有两个硬链接,一个是目录本身,另一个是隐藏的当前目录
区别 | 硬链接 | 软链接 |
命令 | ln | ln -s |
对象 | 只能对文件创建硬链接(不能针对目录创建) | 普通文件和目录 |
是否受源文件影响 | 否 | 是 |
inode号 | 相同 | 不同 |
跨分区创建 | 不能 | 能 |
跨分区创建就是把软连接放在不同的磁盘分区下创建