ln 硬链接与软链接
1. 命令功能
ln 可以看做是link的简写,功能是创建链接文件,链接文件包括硬链接(hard link)和软链接(符号链接,symbolic link)
2. 语法格式
ln [option] source target
ln 选项 源文件或目录 目标文件或目录
参数 |
参数说明 |
无选项 |
创建硬链接 |
-s |
创建软链接(符号链接) |
目录没有硬链接,只有软链接。
3. 硬软链接文件知识
1. 硬链接
硬链接文件创建方式:ln 源文件 目标文件
每个文件都有一个inode(索引)节点,这个inode就是指向文件在磁盘中具体存放的位置编号。创建硬链接,就是在创建一个文件名,这个文件名指向同一个inode索引,相当于给文件的另一个入口。例如到一个房子开始只有一个门能进入,现在又开了另一个门当做出口。这样做的好处,例如备份文件,删除源文件,只是把源文件名删除了,还可以通过硬链接文件访问这个文件,放置误删除。
硬链接的特性:
- 具有相同inode节点的多个文件互为硬链接。
- 删除源文件或硬链接文件其中之一,文件实体没有被删除。
- 只有删除源文件及全部硬链接文件后,文件实体才会被删除。
- 可以给文件设置硬链接,来防止重要文件被误删。
- 硬链接可以用rm命令删除。
- ls –lih 查看第三列,即硬链接数。
- 对于静态文件(文件没有被调用),当对应的硬链接数为0时,文件就会被删除
实例:创建硬链接
[root@localhost DIR]# ln 123 abc
[root@localhost DIR]# ls -l
total 0
-rw-r--r--. 2 root root 0 Mar 13 23:21 123
-rw-r--r--. 2 root root 0 Mar 13 23:21 abc #abc是123的硬链接文件
[root@localhost DIR]# ls –lih
total 0
786446 -rw-r--r--. 2 root root 0 Mar 13 23:21 123 #inode号相同;2 表示有硬链接数:3
786446 -rw-r--r--. 2 root root 0 Mar 13 23:21 abc
[root@localhost DIR]# ln 123 def
[root@localhost DIR]# ls -lih
total 0
786446 -rw-r--r--. 3 root root 0 Mar 13 23:21 123 # 硬链接数有3
786446 -rw-r--r--. 3 root root 0 Mar 13 23:21 abc
786446 -rw-r--r--. 3 root root 0 Mar 13 23:21 def
[root@localhost DIR]# ls -lih 123
786446 -rw-r--r--. 3 root root 0 Mar 13 23:21 123
2. 软链接
软链接(符号链接),类似windows中的快捷方式。
软链接创建方式:ln –s 源文件 目标文件
[root@localhost home]# ls -l test.txt
-rw-r--r--. 1 root root 27 Mar 14 22:45 test.txt
[root@localhost home]# ln -s test.txt test.txt_link #创建软链接
[root@localhost home]# ls -l test.txt test.txt_link
-rw-r--r--. 1 root root 27 Mar 14 22:45 test.txt
lrwxrwxrwx. 1 root root 8 Mar 14 22:45 test.txt_link -> test.txt #l:软链接标识符
软链接文件和源文件的inode号不一样,链接数也不一样
[root@localhost home]# ls -lih test.txt test.txt_link
786434 -rw-r--r--. 1 root root 27 Mar 14 22:45 test.txt
786448 lrwxrwxrwx. 1 root root 8 Mar 14 22:45 test.txt_link -> test.txt