Linux链接命令详解
1. 硬链接(Hard Link)
硬链接是对文件系统中的某个文件的一个直接引用。所有指向相同数据块的文件(包括原始文件和所有硬链接)都被视为同一文件。如果删除任何一个硬链接,文件的内容仍然存在,直到所有硬链接都被删除。
使用命令:ln
ln <源文件> <目标文件>
示例:
ln file.txt file_hardlink.txt
此命令会在当前目录中创建一个名为file_hardlink.txt
的硬链接,指向file.txt
。
特点:
- 同一文件系统:硬链接只能在同一文件系统中创建。
- 不可链接目录:普通用户无法对目录创建硬链接(root用户可以,但不推荐这样做)。
- 不易区分:硬链接没有符号或标识,文件内容和名称等价。
2. 软链接(Symbolic Link 或 Symlink)
软链接是一个特殊的文件,它包含指向另一个文件的路径。与硬链接不同,软链接是独立于目标文件存在的。如果软链接的目标文件被删除或移动,软链接将变为“悬空链接”(broken link),无法再访问目标文件。
使用命令:ln -s
ln -s <源文件> <目标文件>
示例:
ln -s /path/to/file.txt file_symlink.txt
此命令会创建一个名为file_symlink.txt
的软链接,指向/path/to/file.txt
。
特点:
- 跨文件系统:软链接可以指向任何路径,包括不同文件系统中的文件。
- 链接目录:可以创建指向目录的软链接。
- 可识别性:软链接是一个特殊类型的文件,通常通过
ls -l
命令显示时会有符号->
指示目标文件。
3. 查看链接信息
查看硬链接的数量:
ls -l <文件名>
输出中的“硬链接计数”列表示指向该文件的硬链接数量。
查看软链接:
ls -l <软链接名>
会显示链接的路径,示例:
lrwxrwxrwx 1 user group 11 Nov 28 10:30 file_symlink.txt -> /path/to/file.txt
4. 删除链接
删除硬链接:
rm <硬链接文件>
删除硬链接文件后,如果其他硬链接仍然存在,文件内容不会被删除。
删除软链接:
rm <软链接文件>
删除软链接文件不会影响目标文件,但如果目标文件不存在,软链接将会是“悬空链接”。
总结
- 硬链接适用于对文件内容的引用,不容易分辨原始文件与硬链接,且只能在同一文件系统内使用。
- 软链接适用于创建跨文件系统的快捷方式,能够链接到文件或目录,且链接的路径可能会被改变或文件被删除。