Linux下的软链接和硬链接,文件拷贝的区别

2024-11-10 11:44:35
推荐回答(2个)
回答(1):

(1)软链接可以跨越文件系统 ,硬链接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档链接到linux下/root目录下 bb,cc . ln -s aa.txt /root/bb 链接成功 。ln aa.txt /root/bb 失败 。 (2)关于 I节点的问题 。硬链接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的链接数不是 0,文件就一直存在,不管你删除的是源文件还是链接的文件 。只要有一个存在 ,文件就存在 (其实也不分什么源文件和链接文件的 ,因为他们指向都是同一个I节点的)。 当你修改源文件或者链接文件任何一个的时候 ,其他的文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以删除链接文件对源文件无影响,但是删除源文件,链接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名,但软链接文件没有属于自己的文件块. 软链接比较像windows下的快捷方式。 (3)软链接可以对一个不存在的文件名进行链接。 (4)软链接可以对目录进行链接。 备注:I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.

回答(2):

举个例子,假设磁盘空间100M,A文件大小为10M,文件inode大小1M,符号链接0.1M。
创建文件后磁盘空间大小为100-10-1=89M,那么以下操作对应的磁盘空间为:
1.复制,使用cp命令,磁盘空间大小为89-10-1=78M
2.硬链接,使用ln不带参数命令,磁盘空间为89-1=88M
3.软链接,使用 ln -s命令,磁盘空间为89-0.1=88.9M
“复制”深 度不同而已!