Linux链接
Linux链接
一、Linux链接概述
在Linux系统中,链接分为硬链接和软链接(符号链接)两种类型。
二、硬链接
(一)概念
硬链接可以简单理解为文件的别名,它与原始文件共享同一个inode(索引节点),即指向磁盘上相同的数据块。
(二)特点
- 只能为文件创建硬链接,不能为目录创建硬链接。
- 硬链接不允许跨文件系统创建,例如:在不同磁盘分区或设备上不能创建硬链接(如:
[wucz@192 ~]$ ln aaa.txt /boot/aab.txt
会提示“无法创建硬链接"/boot/aab.txt"》:无效的跨设备连接”。 - 硬链接允许一个文件拥有多个有效文件名。如果为重要文件创建硬链接,可以防止“误删除”,只有并删最后一个链接时,文件才会被真正删除。
(三)创建命令
使用ln 文件名 链接名
命令来创建硬链接。
实例:
$ echo "Hello World" > aaa.txt
$ ln aaa.txt /tmp/aaa.txt
$ ls -li aaa.txt /tmp/aaa.txt
123456 -rw-r--r-- 2 user user 12 Jan 18 10:00 aaa.txt
123456 -rw-r--r-- 2 user user 12 Jan 18 10:00 /tmp/aaa.txt
上面的inode号为123456,证明它们共享相同的inode。
三、软链接(符号链接)
(一)概念
软链接类似Windows的快捷方式,它是一个特殊的文件,其中包含了指向原始文件或目录的路径信息。
(二)特点
- 可以为目录和文件创建软链接。
- 如果删除原始文件,软链接将失效,因为它只是指向原始文件的指针。
- 用
ls -l
查看时,软链接文件的权限通常为lrwxrwxrwx,并会显示指向的路径。
(三)创建命令
使用ln -s 目录或文件名 链接名
命令来创建软链接。
实例:
$ ln -s /home/user/aaa.txt /tmp/aaa.txt
$ ls -l /tmp/aaa.txt
lrwxrwxrwx 1 user user 15 Jan 18 10:05 /tmp/aaa.txt -> /home/user/aaa.txt
如果删除/home/user/aaa.txt
,再次试回访/tmp/aaa.txt
,会显示错误“No such file or directory”。