浅谈Linux里的软硬链接
本机环境
- VMware WorkStation 17
- Linux发行版: CentOS7
- 执行权限:root
软链接
Linux下的软链接 其实 和Windows下的快捷方式是一样的。
拥有这样几个特性:
- Linux的软链接创建后,删除软链接对
源文件
没有任何影响。 - Linux的软链接可以创建多个,且都可以指向同一个源文件。
- Linux的源文件如果删除,软链接即可失效。
- Linux的软链接也可以链接文件夹。
软链接创建命令如下:
ln -s [源文件绝对路径] [软链接绝对路径] # -s 是 soft 的意思 '柔软'
举例演示
# 我们在/opt/目录下创建一个source_demo.txt 文本文件,并写入一些测试内容 $ cd /opt $ touch source_demo.txt $ vim source_demo.txt ----------------------------- 这是源文件的内容,测试用 ----------------------------- # 然后我们在/tmp目录下来创建软链接指向这个source_demo文件 $ cd /tmp $ ln -s /opt/source_demo.txt /tmp/lns_demo #创建连接文件 lns_demo连接 $ cat ln_demo # 查看这个文件内容,可以看到它输出了源文件的内容 $ ls -l # 查看创建的详细信息 # 然后,我们可以再创建一个指向/opt/source_demo.txt的的软链接,再或者删除软链接。 $ ln -s /opt/source_demo.txt /tmp/lns_demo1 $ rm -rf /tmp/lns_demo $ rm -rf /tmp/lns_demo1 # 可以知道并不会对源文件产生任何影响 #我们直接删除源文件,链接文件就会失效 $ rm -rf /opt/source_demo.txt # 再去查看链接文件,就会发现已经失效 $ cat /tmp/lns_demo
说明:我们可以使用 readlink [软链接路径]
来查看软链接到底它存放了什么?
$ readlink /tmp/lns_demo
输出: /opt/source_demo
# 可以知道,软链接自己存的东西就是源文件的路径而已。
硬链接
介绍硬链接之前,需要搞清楚inode 是什么
-
inode
操作系统中专门用于管理文件的软件被称之为 【文件系统】
==注:==Linux里的文件系统类型主要有:FAT16 FAT32 NTFS XFS EXT3 EXT4
文件系统里存储了诸多文件,而每个文件都有自己的元数据(包括,文件创建时间、修改时间、文件大小、属主信息等)
这些数据保存在磁盘上的块(block),每个块占8个扇区,总计4kb数据。
注: block 是一连串的扇区
而inode 就是类似这个文件的
身份证号
一样。中文名称叫做:索引节点 -
查看inode 号
ls -li filename.txt # -i inode # 33582193 -rw-r--r-- 1 root root 31 4月 18 22:49 filename.txt
通过inode 号码,就可以找到文件数据在磁盘上的位置,也就是block的位置。
-
硬链接
文件名和inode 是一对一的关系。
创建多个硬链接,他的inode号是一样的。
目录文件夹不支持硬链接
不得跨文件系统创建硬链接
ls -l 可以查看文件系统的硬链接数量
-rw-r--r-- 1 root root 31 4月 18 22:49 filename.txt # 1个硬链接
创建硬链接方式
ln [源文件绝对路径] [硬链接文件绝对路径] ln /opt/source_demo /tmp/demo2
特点:
源文件删除不影响硬链接。
如果把源文件和所有的硬链接都删除,那么文件数据就会丢失