红帽RHCE之软硬链接

简介: 红帽RHCE之软硬链接

硬链接与软链接:

可以创建指向同一文件的多个名称。
有两种方法可以做到这一点:硬链接、软链接(有时也称为符号链接)。
每种方法都各有利弊。
创建硬链接:
每个文件都以一个硬链接开始
新的硬链接与原始文件的一切属性和内容完全相同,同步更新。
ls -l命令可以显示文件硬链接数量
[fu@VM-0-3-centos ~]$ pwd
/home/fu
[fu@VM-0-3-centos ~]$ ls -l newfile.txt
-rw-rw-r-- 1 fu fu 0 Nov 24 20:07 newfile.txt

使用ln命令为现有文件创建新硬链接

[fu@VM-0-3-centos ~]$ ln newfile.txt /tmp/newfile-hlink2.txt
[fu@VM-0-3-centos ~]$ ls -l newfile.txt /tmp/newfile-hlink2.txt
-rw-rw-r-- 2 fu fu 0 Nov 24 20:07 newfile.txt
-rw-rw-r-- 2 fu fu 0 Nov 24 20:07 /tmp/newfile-hlink2.txt

$ ls -il :查看文件的inode(索引节点编号)

如果两个文件具有相同的inode,则表示它们以硬链接连接彼此。

[fu@VM-0-3-centos ~]$ ls -l newfile.txt /tmp/newfile-hlink2.txt
-rw-rw-r-- 2 fu fu 0 Nov 24 20:07 newfile.txt
-rw-rw-r-- 2 fu fu 0 Nov 24 20:07 /tmp/newfile-hlink2.txt

即使原始文件被删除,只要存在至少一个硬链接,该文件的内容就依然可用。

只有删除了最后一个硬链接时,才会将数据从存储中删除。

硬链接的局限性: 硬链接只能用于常规文件。
不能使用ln来创建指向目录或特殊文件的硬链接。
只有当两个文件都位于同一文件系统上时,才能使用硬链接。 创建软链接:
ln -s命令可创建软链接,也称为“符号链接”。
软链接不是常规文件,而是指向现有文件或目录的特殊类型的文件。
软链接相比硬链接有一定的优势:
 1. 可以链接位于不同文件系统上的两个文件。
 2. 可以指向目录或特殊文件,而不仅限于常规文件。
[fu@VM-0-3-centos ~]$ ln -s /home/user/newfile-link2.txt /tmp/newfile-symlink.txt
[fu@VM-0-3-centos ~]$ 
[fu@VM-0-3-centos ~]$ ls -l newfile-link2.txt /tmp/newfile-symlink.txt
ls: cannot access newfile-link2.txt: No such file or directory
lrwxrwxrwx 1 fu fu 28 Nov 24 20:16 /tmp/newfile-symlink.txt -> /home/user/newfile-link2.txt
[fu@VM-0-3-centos ~]$ cat /tmp/newfile-symlink.txt
hello world
[fu@VM-0-3-centos ~]$ ln -s /etc /home/fu/configfiles
[fu@VM-0-3-centos ~]$ 
[fu@VM-0-3-centos ~]$ cd /home/fu/configfiles
[fu@VM-0-3-centos configfiles]$ pwd
/home/fu/configfiles

当原始文件被删除后,软链接依然会指向该文件。

指向缺失的文件的软链接称为“悬挂的软链接”(断链)。

若重新创建与原始文件同名的文件,软链接将重新创建。

[fu@VM-0-3-centos ~]$ touch file.txt
[fu@VM-0-3-centos ~]$ echo 'hello world' >> file.txt
[fu@VM-0-3-centos ~]$ cat file.txt
hello world
[fu@VM-0-3-centos ~]$ ln -s file.txt softlink.txt
[fu@VM-0-3-centos ~]$ ls -l softlink.txt
lrwxrwxrwx 1 fu fu 8 Nov 24 20:29 softlink.txt -> file.txt
[fu@VM-0-3-centos ~]$ cat softlink.txt
hello world
[fu@VM-0-3-centos ~]$ cat file.txt
hello world
[fu@VM-0-3-centos ~]$ rm -f file.txt
[fu@VM-0-3-centos ~]$ ls- lh softlink.txt #删除原始文件后软链接断链
lrwxrwxrwx 1 fu fu 8 Nov 24 20:29 softlink.txt -> file.txt
[fu@VM-0-3-centos ~]$ touch file.txt
[fu@VM-0-3-centos ~]$ ls -lh softlink.txt
lrwxrwxrwx 1 fu fu 8 Nov 24 20:29 softlink.txt -> file.txt


相关文章
|
6月前
|
存储 Unix Linux
40. 【Linux教程】文件系统介绍
40. 【Linux教程】文件系统介绍
33 0
|
存储
红帽RHCE之超级详细的磁盘分区方案
红帽RHCE之超级详细的磁盘分区方案
345 0
红帽RHCE之超级详细的磁盘分区方案
|
Shell Linux 网络安全
红帽RHCE之初识命令行
红帽RHCE之初识命令行
142 0
红帽RHCE之初识命令行
|
Unix Linux 调度
红帽RHCE之查看进程
红帽RHCE之查看进程
246 0
|
Shell
红帽RHCE之目录增删改查
红帽RHCE之目录增删改查
131 0
|
Linux 网络安全 开发工具