Linux 新手:第一次用 ln,软链接和硬链接怎么分
新手第一次听说链接,脑子里先有个画面:它就像给文件起了个别名,两个名字指向同一个东西,改一个,另一个也跟着变。但 Linux 里链接分两种,软链接和硬链接,用错了会出怪事,先把区别讲清楚。
先说软链接,命令是 ln -s 源文件 链接名。比如 ln -s /data/report.txt ~/report,这就在家目录放了一个叫 report 的软链接。它存的不是文件内容,而是一条路径,相当于一张写着地址的纸条。你打开软链接,系统顺着纸条找到源文件再打开。好处是灵活:能跨分区、能指向目录、删了重建也方便。坏处也在这张纸条上:源文件一旦被删掉或移走,纸条指向的地方就没东西了,软链接变成悬空的,打开就报错。
再说硬链接,命令是不带 -s 的 ln 源文件 链接名。比如 ln /data/report.txt ~/report2。这回不是纸条,而是给同一个文件内容又起了一个名字。Linux 里文件内容由 inode 管着,文件名只是挂在 inode 上的一块牌子,硬链接就是多挂一块牌子。删掉 report.txt,report2 照样能打开,因为内容还在,牌子只是少了一块。只有当所有牌子都删光,内容才真正被释放。
怎么一眼区分?用 ls -l 看。软链接那行开头是字母 l,后面会写清楚它指向谁,比如 report -> /data/report.txt。硬链接看起来和普通文件一模一样,开头是 -,但第二列那个数字就是牌子数:数字是 2,说明这个内容挂了两个名字。
还有两条硬规矩要记住。第一,硬链接不能跨分区,也不能给目录建,目录只能用软链接。第二,日常用软链接就够了,备份、快捷方式、换版本指来指去都是它的活;硬链接适合那种“两个入口必须同生共死、删一个另一个还得在”的场合。
一句话总结:软链接存路径,源文件没了它就断;硬链接多挂一块牌子,删一个另一个还在。分清这两点,ln 就不会再用错了。
- 点赞
- 收藏
- 关注作者
评论(0)