连接的简单理解
硬链接 = 同一个文件的多个名字(最强)
软链接 = 类似快捷方式,但比快捷方式更底层、更透明
硬链接:
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 输入:

编译a.c
创建硬链接a.c1
修改a.c1内容为

再次编译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!
浙公网安备 33010602011771号