ln -s 源文件 目标链接名,创建符号链接。
这就是坑,别用硬链接替代软链接。
别这么干,硬链接不支持跨文件系统创建。
这个硬链接啊,我在 2015 年第一次接触 Linux 的时候,那可真是头大了。当时我在北京的一个互联网公司实习,那会儿我们那帮小年轻,天天研究各种开源技术,Linux 就是我们每天必用的。
那时候,我对文件系统里的这些概念一窍不通,硬链接是什么?软链接是什么?傻傻分不清楚。记得有一次,我误删了一个项目文件,那可是我们团队花了大半个月才调试好的代码,一删就没了。当时我心都慌了,那个心疼啊!
然后,我就开始各种搜索,怎么恢复这个文件。无意间,我看到了硬链接这个概念。当时就想,这不就是备份嘛!于是,我按照网上的教程,在同一个目录下创建了一个硬链接。
当时操作是这样的:ln 原始文件名 硬链接文件名。结果,神奇的事情发生了,那个被删除的文件竟然真的恢复了!我那个高兴啊,感觉像是找到了救命稻草。
现在回想起来,那个硬链接,其实就是一种文件链接。它不是像软链接那样指向文件路径,而是直接指向文件的inode。简单来说,就是两个名字指向同一个文件。
不过,说起来,硬链接有几个限制,比如它不能跨文件系统创建,也不能创建目录的硬链接。这块儿,我就没碰过,不敢乱讲。反正,我个人觉得,硬链接是个挺实用的功能,尤其是在做备份和文件管理的时候。
Linux中的硬链接(hard link)就是一个文件系统中的文件名和磁盘上的数据块之间的直接关联。其实很简单,我们可以把硬链接理解为一个别名。
1. 先说最重要的,硬链接可以让你在同一个文件系统内,对同一个文件创建多个名称。举个例子,如果你有一个文件叫做document.txt,你可以创建一个硬链接叫做document_copy.txt,两者实际上指向同一个磁盘块。
2. 另外,硬链接有几个特点:它们共享相同的文件权限、所有权、最后访问时间和最后修改时间。还有个细节挺关键的,就是硬链接的数量是可以增加的,但原始文件的磁盘块大小是不变的。
我一开始也以为硬链接可以跨文件系统创建,后来发现不对,硬链接只能在同一个文件系统内创建。等等,还有个事,就是当原始文件被删除后,硬链接依然存在,它们会变成“悬挂链接”(或称为“孤儿链接”),但文件内容已不可访问。
所以,如果你想在同一个文件系统内,为同一个文件创建多个别名,硬链接是个不错的选择。但要注意,一旦原始文件被删除,那些硬链接也就失去了意义。