说起来我混迹问答论坛这十年,关于Linux创建链接的问题,那可真不少。硬链接和软链接嘛,这俩玩意儿啊,其实就跟咱们平时用文件夹一样,只不过一个是复制了一份地址,一个是复制了一份内容。
硬链接,就像在同一个盘里,给同一个文件多开了一个门。比如,我在2019年3月1号,在Linux系统下,创建了一个文件叫test.txt。然后我就在同一目录下用命令ln test.txt test_hardlink创建了一个硬链接。你看,不管我通过test.txt还是test_hardlink访问文件,其实都是同一个文件的内容。
shell ln test.txt test_hardlink
软链接,就像是给了那个文件一个快捷方式。还是那个test.txt,我在2020年5月15号,在另一个目录下创建了一个软链接,命令是ln -s /path/to/test.txt softlink。这个软链接其实就是一个指向原始文件的指针,而不是文件内容本身。
shell ln -s /path/to/test.txt softlink
这俩链接的区别啊,简单来说,硬链接在同一文件系统内创建,不会占用额外空间,删除一个链接,另一个还存在;软链接可以跨文件系统创建,删除原始文件,链接就失效了。
我当时也没想明白,后来用得多了,就慢慢明白了。不过说实话,刚开始搞Linux的时候,真是挺头大的。
说起这个,我还真有话讲。记得那年在北京,我负责维护一个服务器,那服务器上的文件系统我简直是了如指掌。当时为了备份一个重要文件,我用了两种链接方式,结果差别可大了。
首先说硬链接,那玩意儿就像一个双胞胎,你给文件起一个新名字,但本质上它还是那个文件。我那次备份了一个大文件,用了硬链接,结果文件大小没变,备份速度也快,简直完美。
命令是这样的:ln 源文件 目标链接名。比如我备份了一个叫data.txt的文件,我可以在另一个目录下创建一个叫data_backup的硬链接,命令就是:ln /path/to/data.txt /path/to/data_backup。
然后是软链接,这个就像一个指向另一个文件的指针,你修改源文件,软链接里的内容也会跟着变。不过,如果源文件不见了,软链接就成了一堆无用的垃圾。
创建软链接的命令是:ln -s 源文件 目标链接名。比如:ln -s /path/to/data.txt /path/to/data_backup。
不过说真的,软链接有个好处,就是你可以把文件链接到任意位置,包括网络上的文件。我之前遇到过这种情况,有个同事的资料放在了公司的内部服务器上,他用软链接直接在本地访问,方便极了。
总之,硬链接和软链接各有各的用处,具体用哪个得看你的需求。这块我踩过不少坑,现在算是有点心得啦!
硬链接直接复制inode,软链接类似快捷方式。 硬链接:ln 源文件 链接名,示例:ln /home/user/file1 link1。 软链接:ln -s 源文件 链接名,示例:ln -s /home/user/file1 symlink1。
时间:2008年,项目:文件共享服务器。
你自己掂量。
硬链接:在Linux中使用ln命令创建,例:ln 源文件 目标链接名
软链接:使用ln -s命令创建,例:ln -s 源文件 目标链接名
记得链接名后不要加斜杠(/)。