在linux中,使用cp命令如何创建文件的软链接与硬链接,二者有什么不同?

在linux中,使用cp命令如何创建文件的软链接与硬链接,二者有什么不同?,第1张

cp -l sourcefile hardlinkfile

链接相当于windows的快捷方式,只是指向实际文件的“指针”,不是实际文件;

cp -s sourcefile softlinkfile

硬链接比较复杂,相当于新建了几个文件,这几个文件是同步的。

你对任意一个 *** 作都会在其它上面有作用。这对一份文件需要存放多个目录而只需修改任意一个特别好用。

由 1 号inode 读取到连结档的内容仅有档名,根据档名链接到正确的目录去取得目标文件的inode ,

最终就能够读取到正确的数据了。

创建软连接,从下图可以看出软连接的大小是11个字节,对比/etc/passwd和passwdlns可知他们不是同一个文件。

对指向文件的的软连接 :使用cp oldfilename newfilename ,是对软连接指向的文件进行复制,属性和大小都和指向文件相同。

如果只是想复制软连接可以使用:cp -d filename1 filename2

复制指向目录的软连接 :

使用cp -r dir1 dir2 可以看出对于指向目录的软连接的复制是对软连接复制的。

如果我就是相同过软连接复制目录下的全部文件,该如何呢?

使用rm删除文件结果如下,可以看到删除的是软连接文件。

使用rm删除软连接指向的源文件,赶紧将备份的passwd文件还原。

对于目录的删除是对软连接进行删除还是目标目录:

在目录后不加/是对软连接进行 *** 作:

在目录后加上/是对连接目录进行删除:下图可以看出/tmp/testdir的大小已经变成了6了,删除了目录里的全部文件。

对软连接改变权限会对源文件有什么样的影响 :不管是文件软连接还是目录软连接,对软连接进行修改权限,修改的是目标文件和目录的权限

1、定义不同

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。

硬链接就是一个文件的一个或多个文件名。把文件名和计算机文件系统使用的节点号链接起来。因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。

2、限制不同

硬链接只能对已存在的文件进行创建,不能交叉文件系统进行硬链接的创建;

软链接可对不存在的文件或目录创建软链接;可交叉文件系统;

/iknow-pic.cdn.bcebos.com/35a85edf8db1cb13784969b9d354564e92584b73"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/35a85edf8db1cb13784969b9d354564e92584b73?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/35a85edf8db1cb13784969b9d354564e92584b73"/>

3、创建方式不同

硬链接不能对目录进行创建,只可对文件创建;

软链接可对文件或目录创建;

4、影响不同

删除一个硬链接文件并不影响其他有相同inode号的文件。

删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即danglinglink,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/9028216.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-24
下一篇2023-04-24

发表评论

登录后才能评论

评论列表(0条)

    保存