Linux 文件链接 ln
1. 命令简介 🐾
ln
命令用于创建 硬链接
或 符号链接
(软链接),是 Linux 文件管理的重要组成部分。通过创建链接,我们可以方便地访问或备份文件,而无需复制文件本身,从而节省磁盘空间。💾 不过,使用时需要注意链接类型以及它们各自的特点和限制。👀
硬链接和符号链接的区别 🧐
1. 硬链接 (Hard Link) 💎
硬链接是指向同一文件的多个文件名。它们共享相同的 inode 号,意味着它们实际上是同一个文件的多个入口。修改任意一个硬链接的内容会影响所有链接。🔗
2. 符号链接 (Symbolic Link) 🧸
符号链接类似于 Windows 中的快捷方式。它是一个独立的文件,指向另一个文件或目录的路径。符号链接不会共享相同的 inode,删除源文件后,符号链接将变为“断链”。⚠️
2. 命令参数 ✨
ln [选项] 源文件 目标文件
常用选项和参数:
-s, --symbolic
:创建符号链接(软链接)。如果不使用-s
,则默认创建硬链接 。🔄-b, --backup
:在覆盖前进行备份。📂-f, --force
:如果目标文件已存在,则删除它并创建新的链接。💥-i, --interactive
:交互式地覆盖目标文件之前询问用户。🙋♂️-n, --no-dereference
:将符号链接视为常规文件。🔍-v, --verbose
:显示详细信息。📜
3. 命令示例 🌟
创建链接
# 创建硬链接
ln source.txt hardlink.txt
# 创建符号链接
ln -s source.txt symbolink.txt
# 强制创建符号链接,替换已存在的符号链接
ln -sf source.txt symbolink.txt
# 创建硬链接,不覆盖现有文件
ln -n source.txt hardlink.txt
# 创建符号链接,并显示详细信息
ln -sv source.txt symbolink.txt
查看链接 👀
使用 ls
查看文件的链接类型和硬链接数量:
ls -l /bin/ #命令:查看硬链接数量,输出的第二列就是文件的链接数
lrwxrwxrwx 1 root root 8 Mar 23 2022 nisdomainname -> hostname #软链接,指向hostname
-rwxr-xr-x 1 root root 22760 Mar 23 2022 hostname #hostname只有一个硬链接,就是它本身
-rwxr-xr-x 1 root root 68104 Jan 8 2024 mkdir #一个硬链接
-rwxr-xr-x 2 root root 137584 Feb 6 2021 unpigz #两个硬链接
使用 find
筛选类型为符号链接的文件:
ls -l `find /bin/ -type l` #命令:这里将find查找到的目录交给ls显示详情
lrwxrwxrwx 1 root root 26 Jan 23 2024 /bin/addr2line -> x86_64-linux-gnu-addr2line
lrwxrwxrwx 1 root root 10 Apr 14 2023 /bin/apport-collect -> apport-bug
lrwxrwxrwx 1 root root 6 Mar 18 2022 /bin/apropos -> whatis
lrwxrwxrwx 1 root root 18 Oct 24 2023 /bin/apt-add-repository -> add-apt-repository
...
使用 readlink
查看符号链接指向的源文件:
readlink /bin/addr2line #命令
x86_64-linux-gnu-addr2line
注意事项 ⚠️
- 删除文件:
- 硬链接:删除原始文件并不会影响硬链接文件,因为它们指向同一个物理位置。🛑
- 符号链接:如果原始文件被删除,符号链接将失效,变成“断链”。💔
- 跨文件系统:
- 硬链接:目标文件和链接文件必须在同一文件系统中。🚧
- 符号链接:可以跨越文件系统。🌐
- 目录的链接:
- 硬链接:传统上不能创建目录的硬链接,因为这可能会导致文件系统循环 问题。⚠️
- 符号链接:符号链接可以轻松指向目录,非常适合创建快捷方式和便捷访问目录。📂
掌握 ln
命令,链接文件不再麻烦,轻松管理文件和目录,节省空间,提升效率!✨希望这篇教程对你有帮助!如果觉得有用,别忘了收藏在线知识库 www.zxzsk.com 哦!😊