Linux硬链接和软链接文件

  • 内容
  • 相关

(1)创建硬链接文件

    首先创建 test.c 文件的硬链接文件 link.c

yy@youyou:test$ ls
test.c
yy@youyou:test$ ln test.c link.c
yy@youyou:test$ ls -li
总用量 8
260857 -rw-rw-r-- 2 yy yy 343 10月  6 19:26 link.c
260857 -rw-rw-r-- 2 yy yy 343 10月  6 19:26 test.c

    命令:ln  源文件  链接

    查看:ls  -li

TIM截图20181006193037.png

    通过 "ls  -li" 可以看到硬链接文件和软链接文件的 iNode 号相同

补充:操作系统是通过 iNode 这个编号来访问文件在磁盘的某个逻辑块里的内容。 iNode 相当于文件的身份证号。iNode 一样,内容肯定也一样,并且一个文件只有一个 iNode 号。

    如果改变一个文件:

yy@youyou:test$ vim link.c

link.c 添加一行注释:

TIM截图20181006194745.png

再来看 test.c 文件的内容:

yy@youyou:test$ vim test.c

TIM截图20181006195038.png

可以看到另一个文件中的内容也发生了变化。

    所以呢,硬链接文件一个发生改变,另一个也会跟着发生改变。因为他们的 iNode 相同。

(2)创建软链接文件

    命令:ln  -s  源文件  链接文件

yy@youyou:test$ ln -s test.c sl.c
yy@youyou:test$ ls -li
总用量 8
260857 -rw-rw-r-- 2 yy yy 361 10月  6 19:46 link.c
260858 lrwxrwxrwx 1 yy yy   6 10月  6 19:55 sl.c -> test.c
260857 -rw-rw-r-- 2 yy yy 361 10月  6 19:46 test.c

TIM截图20181007145928.png

    可以看到软链接文件和源文件的 iNode 号不相同,软链接文件 sl.c 是一个单独的文件,存放的其实是源文件 test.c iNode。通过它可以访问 test.c ,使用 vim 编辑器打开软链接文件 sl.c,其实找的是 test.c iNode 号,然后找到对应逻辑块的内容。如果把源文件 test.c 删了,软链接文件 sl.c 便不能在访问了。而硬链接文件依旧可以被访问

TIM截图20181007192303.png

    软链接文件相当于 Windows 中的快捷方式

本文标签:

版权声明:若无特殊注明,本文皆为《尤尤》原创,转载请保留文章出处。

本文链接:Linux硬链接和软链接文件 - https://www.yxfseo.cn/post-224.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

00:00 / 00:00
顺序播放