「复制、拷贝、替身、软连接、硬连接」区别详解

您所在的位置:网站首页 软连接和硬连接抗风抗压效果那个好一点 「复制、拷贝、替身、软连接、硬连接」区别详解

「复制、拷贝、替身、软连接、硬连接」区别详解

2023-11-09 21:12| 来源: 网络整理| 查看: 265

在mac文件系统中可以对一个文件进行标题中的这5种操作,操作的结果都是生成一份副本,但是其中却有很大区别。

首先操作上的区别很明显

生成 软连接、硬连接 是通过命令行操作的 生成 替身、复制、拷贝 一般是通过finder进行操作的,右键某个文件,菜单中选择(其实复制也可以用命令cp来实现,跟finder操作是一个效果)

然后其中的 复制和拷贝 跟另外三种方式本质上不同,它们之间的区别也很好理解

他们的共同点是生成一份文件的副本,副本和原文件是两个独立的文件,两者的关系只有在生成时是关联的,在生成之后两者就没有关系,一个的被修改完全不会影响到另一个 区别是在你右键点击复制后就会立刻在当前目录下生成一份副本,而拷贝则是把此文件的副本放到剪贴板,等待被粘贴 软连接和硬连接

但 软连接、硬连接、替身 间的区别就需要进一步分析。 它们本质上都不会生成文件的副本,而是通过各种方式去指向原文件,让你可以跟访问原文件一样访问连接或是替身。

这里先分析软连接(或者说符号链接 symbolic link)和硬连接(hard link),它们都是在「POSIX」标准中就有的,所以在Linux和macOS上都会有,而且也是一样的。 他们的作用有:

让用户更方便的访问到文件、目录、驱动器或者网络设备等文件系统对象 当用户访问一个具有很深目录结构的文件时,不用再一级一级的打开目录,而是直接双击链接,就打开了相应的文件 Linux 中常用它来解决一些库版本的问题 多数情况下,通过链接访问原始对象的过程对用户和应用程序是透明的,不可见的

从使用的角度讲,两者没有任何区别,都与正常的文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。区别在于底层原理:软连接本身是一个文件,类似Windows 的快捷方式,可以让你通过连接文件到原文件;硬连接是通过文件系统的inode连接来产生新文件名,跟访问原文件一样进行访问,中间不会产生新文件,下面举个例子详细说明。

我们先以文件为例(目录稍有不同),在一个目录中创建一个文件和它的软硬连接 (注:因为涉及一些linux系统有关的讨论,本文中一律使用「目录」这个名称代替「文件夹」)

$ touch myfile && echo "my file first line" > myfile $ ln myfile hard # 创建一个硬连接文件hard $ ln -s myfile soft # 创建一个软连接文件soft

首先,我们会发现,通过软连接、硬连接和文件本身myfile对「文件内容」进行操作的效果都是一样的,实际上都是操作myfile

$ echo "new line by hard" >> hard $ cat myfile my file first line new line by hard $ echo "new line by soft" >> soft $ cat myfile my file first line new line by hard new line by soft

但如果我们我们对文件本身进程操作,对软连接和硬连接的影响就不太一样了 删除 myfile 文件,然后分别输出软硬链接的文件内容,你会发现软连接会找不到文件,但硬连接却能正常访问

$ rm myfile $ cat hard my file first line new line by hard new line by soft $ cat soft cat: soft: No such file or directory # 先查看下现在目录的状态 $ ls -lhi 87446916 -rw-r--r--


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3