[译]硬链接与软链接的区别

原文摘自:what-is-the-difference-between-a-hard-link-and-a-symbolic-link

一图胜千言。


图片描述
图片描述

一例胜百图。
创建两个新文件:

touch blah1
touch blah2

向里面添加点内容

echo "Cat"  > blah1
echo "Dog" > blah2

查看添加的内容:

cat blah1; cat blah2
Cat
Dog

创建硬链接和软链接

ln blah1 blah1-hard
ln -s blah2 blah2-soft

查看下我们创建的东西

ls -l 
blah1
blah1-hard
blah2
blah2-soft -> blah2

修改blah1的名字没有什么影响

mv blah1 blah1-new
cat blah1-hard
Cat

blah1-hard指向的是inode,所以文件的内容没有变化。

mv blah2 blah2-new
ls blah-soft
blah2-soft
cat blah2-soft
cat: blah-soft: No such file or directory

文件的内容没有办法找到,因为软链接是指向的名字,而名字已经被修改了,所以找不到对应的文件。
因此:
blah1被删除了,但是blah1-hard仍然拥有内容。
blah2被删除了,但是blah2-soft是一个指向不存在文件的链接。

补充:
硬链接不能跨越文件系统。 为什么? 硬链接共享相同的inode - 它们指向硬件位置,而不是目录树。 这意味着如果你试图在ext3和ext4之间建立硬连接,那么你会遇到一些问题 - 这些文件系统是不同的,所以他们不能共享inode。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 姓名:刘伟 学号:17103223402 【嵌牛导读】 本文介绍了linux下文件系统的链接方式 【嵌牛鼻子】li...
    d7646e4b90f1阅读 4,400评论 0 0
  • 首先说说目录的本质和节点的概念和目录是通过什么来查找到他的子文件: 在linux系统下一切皆文件,目录它也是一个文...
    BossHuang阅读 11,644评论 0 1
  • inode 1.理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)...
    jie0112阅读 4,999评论 0 0
  • 1. 是什么 链接:一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。 【硬链接】(hard lin...
    半生不熟_阅读 6,551评论 0 5
  • 语法格式 ln 【option】 【source】 【target】 ln 【选项】【源文件目录】【目标文件目录】...
    养码哥阅读 7,218评论 0 1

友情链接更多精彩内容