欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Mac 中使用文件硬链接 有大用

2021.03.17 备忘 - Mac 中使用文件硬链接

以前搜过,基本知识如下:

  • 软连接相当于快捷方式

  • 硬链接相当于同一个文件多个存放位置,实际是同一个文件

  • 同一个文件,删除了所有硬链接,才代表文件被删除了

  • 文件夹不能创建硬链接

  • 硬链接的用途是防止文件误删

下面是代码,假定有一个文件 org.txt

ln org.txt org_hard.txt # 创建硬链接
ln -s org.txt org_soft.txt # 创建软连接
ll # 结果如下
-rw-r--r-- 2 lightmann    0 Mar 17 17:02  org.txt
-rw-r--r-- 2 lightmann    0 Mar 17 17:02  org_hard.txt
lrwxr-xr-x 1 lightmann    7 Mar 17 17:04  org_soft.txt -> org.txt

注:ll 中显示的第二列数字能看出文件有没有硬链接,2 表示存放在了两个位置。

查看一个文件的所有硬链接,代码:

ls -i org.txt # 获取文件的 inode 值,结果是一个数字
find . -inum 655234346 # 按 inode 搜索这个数字,结果如下:
./org_hard.txt
./org.txt

  • 如果删除了硬链接,还在回收站中时,ll 显示数字没变。从回收站中删除之后才会减少。

  • Mac 中对硬链接加标签,会作用到每一个硬链接上

  • 如果硬链接和坚果云结合起来使用,会如何?不行,云端修改之后,同步过来的文件 inode 值变了

  • 如果复制粘贴文件时,替换掉硬链接,是否会改变 inode 值?会改变 inode 的值

  • 硬链接和 iCloud 结合使用,会如何?不行,也会改变 inode 的值!就算在 Mac 上修改,也会更改 inode 值!

  • 同一个文件夹下面创建硬链接,会导致没法修改。保存时提示没有权限。

因此:使用硬链接,要注意的事项太多了,只能作为特殊情形使用。
注:上面是以 pdf 文件来测试的,对文件的修改是在 preview 做标记。似乎只有在命令行中对文件修改才不会修改 inode 值,比如普通文本文件的读写操作等



作者:Lightmann
链接:https://www.jianshu.com/p/7386ac1b87c0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


来自  https://www.jianshu.com/p/7386ac1b87c0

普通分类: