连接的简单理解

硬链接 = 同一个文件的多个名字(最强)

软链接 = 类似快捷方式,但比快捷方式更底层、更透明

硬链接:

xth@xth-virtual-machine:~$ touch a.c

xth@xth-virtual-machine:~$ gedit a.c

xth@xth-virtual-machine:~$ gcc a.c -o a.c.c

xth@xth-virtual-machine:~$ ln a.c a.c1

xth@xth-virtual-machine:~$ ./a.c.c

hello xth!xth@xth-virtual-machine:~$ gedit a.c1

xth@xth-virtual-machine:~$ gcc a.c -o a.c.c

xth@xth-virtual-machine:~$ ./a.c.c

hello xth!

yesxth@xth-virtual-machine:~$

先创建a.c 输入:

屏幕截图 2025-11-17 214511

编译a.c

创建硬链接a.c1

修改a.c1内容为

屏幕截图 2025-11-17 220114

再次编译a.c,重新执行,看出修改a.c1之后a.c 文件执行后结果也变化,说明创建硬链接并修改也改变了原文件

xth@xth-virtual-machine:~$ ll -i a.c*

7084853 -rw-rw-r-- 2 xth xth 89 11月 17 22:01 a.c

7084853 -rw-rw-r-- 2 xth xth 89 11月 17 22:01 a.c1

7080375 -rwxrwxr-x 1 xth xth 8648 11月 17 22:01 a.c.c*

使用ll -i可以查看inode号,相当于文件身份证,7084853 7084853两个号相同说明是硬链接

xth@xth-virtual-machine:~$ ls

a examples.desktop install_sogou_fcitx.sh.save 模板 图片 下载 桌面

a.c im-backup-2025-11-09 公共的 视频 文档 音乐

xth@xth-virtual-machine:~$ ln a b

xth@xth-virtual-machine:~$ ln a c

xth@xth-virtual-machine:~$ ./b

hello xth!

yesxth@xth-virtual-machine:~$ ./c

hello xth!

yesxth@xth-virtual-machine:~$ ./a

hello xth!

其中a是a.c编译生成的文件

软链接(常用)

ln -s

xth@xth-virtual-machine:~$ touch hello.c

xth@xth-virtual-machine:~$ gedit hello.c

xth@xth-virtual-machine:~$ gcc hello.c -o hello

xth@xth-virtual-machine:~$ ./hello

helloxth@xth-virtual-machine:~$

xth@xth-virtual-machine:~$ ln -s hello hello2

xth@xth-virtual-machine:~$ ./hello2

helloxth@xth-virtual-machine:~$ ln hello hello1

xth@xth-virtual-machine:~$ ./hello1

helloxth@xth-virtual-machine:~$

xth@xth-virtual-machine:~$ ll -i hello

7083285 -rwxrwxr-x 2 xth xth 8608 11月 18 09:36 hello*

xth@xth-virtual-machine:~$ ll -i hello1

7083285 -rwxrwxr-x 2 xth xth 8608 11月 18 09:36 hello1*

xth@xth-virtual-machine:~$ ll -i hello2

7084593 lrwxrwxrwx 1 xth xth 5 11月 18 09:37 hello2 -> hello*

创建hello的硬链接和软连接,分别看ll -i 可以得知inode号不同,hello2指向hello

hello2是hello 的软链接 hello1和hello inode号相同,是硬链接

Home目录下已经存在hello.c和编译后文件hello

首先使用相对路径 ln -s hello hello1 创建hello1软链接之后mv移动到/home/xth/图片,执行hello1发现软链接失效,再次使用绝对路径,ln -s /home/xth/hello hello1,移动到/home/xth/图片 之后执行输出正常,说明软链接要使用绝对路径

xth@xth-virtual-machine:~$ ls

examples.desktop im-backup-2025-11-09 模板 文档 桌面

hello install_sogou_fcitx.sh.save 视频 下载

hello.c 公共的 图片 音乐

xth@xth-virtual-machine:~$ ln -s hello hello1

xth@xth-virtual-machine:~$ mv hello1 /home/xth/图片

xth@xth-virtual-machine:~$ cd /home/xth/图片

xth@xth-virtual-machine:~/图片$ ./hello1

bash: ./hello1: 没有那个文件或目录

xth@xth-virtual-machine:~/图片$ rm hello1

xth@xth-virtual-machine:~/图片$ cd ../

xth@xth-virtual-machine:~$ ln -s /home/xth/hello hello1

xth@xth-virtual-machine:~$ mv hello1 /home/xth/图片

xth@xth-virtual-machine:~$ cd /home/xth/图片

xth@xth-virtual-machine:~/图片$ ./hello1

hello,xth!

posted on 2025-11-30 22:20  hzcxth  阅读(0)  评论(0)    收藏  举报