软链接与硬链接
目标
使用硬链接和符号(或‘软’)链接,使多个文件名引用同一文件。
名词定义
硬链接:从初始名称到文件系统上的数据,每个文件都以一个硬链接开始。当创建指向文件的新硬链接时,也会创建另一个指向同一数据的名称。新的硬链接与原始文件名的作用完全相同。一经创建,新的硬链接与文件的原始名称便毫无二差。
软链接:用来创建类似快捷方式的命令,支持非常规文件的创建。
##实操演示
[root@jenkins tmp]# mkdir bbb
[root@jenkins tmp]# ln aaa bbb/
[root@jenkins tmp]# cd bbb/
[root@jenkins bbb]# ls -s
总用量 0
0 aaa
[root@jenkins bbb]# ls -a
. .. aaa
##创建一个硬链接
[root@jenkins tmp]# ln -s aaa bbb/ccc
[root@jenkins tmp]# tree bbb
bbb
├── aaa
└── ccc -> aaa
0 directories, 2 files
##创建一个软链接
[root@jenkins tmp]# ls -i
638828 aaa
68173151 bbb
[root@jenkins tmp]# cd bbb/
[root@jenkins bbb]# ls
aaa ccc
[root@jenkins bbb]# ll -i
总用量 0
638828 -rw-r--r-- 2 root root 0 1月 28 14:41 aaa
68174567 lrwxrwxrwx 1 root root 3 1月 28 14:44 ccc -> aaa
##通过查看文件的inode编号,可以判断出软链接是为文件指定一个新的inode编号。当删除硬链接时会删除源文件。
[root@jenkins tmp]# ln -s /tmp/aaa ./bbb/
[root@jenkins bbb]# ls
aaa
lrwxrwxrwx 1 root root 8 1月 28 14:53 aaa -> /tmp/aaa
[root@jenkins bbb]# ls
aaa
[root@jenkins bbb]# cd ..
[root@jenkins tmp]# rm -rf aaa
[root@jenkins tmp]# ls bbb/
aaa
[root@jenkins tmp]# ll bbb/
总用量 0
lrwxrwxrwx 1 root root 8 1月 28 14:53 aaa -> /tmp/aaa
##删除源文件后,软链接无法使用
[root@jenkins tmp]# touch aaa
[root@jenkins tmp]# mkdir bbb
[root@jenkins tmp]# ln aaa bbb/
[root@jenkins tmp]# ls
aaa
bbb
[root@jenkins tmp]# cd bbb/
[root@jenkins bbb]# ll
总用量 0
-rw-r--r-- 2 root root 0 1月 28 14:55 aaa
[root@jenkins bbb]# cd ..
[root@jenkins tmp]# rm -rf aaa
[root@jenkins tmp]# ll bbb/
总用量 0
-rw-r--r-- 1 root root 0 1月 28 14:55 aaa
##删除源文件后,硬链接可以正常使用。
文档更新时间: 2022-01-28 15:47 作者:xiubao yan