欢迎各位兄弟 发布技术文章
这里的技术是共享的
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 值,比如普通文本文件的读写操作等