在Linux中,cp -l 命令用于创建文件的硬链接(hard link),而不是常规的文件复制。以下是详细说明:
-l 参数,cp 会为源文件创建一个硬链接到目标位置。硬链接与原文件共享相同的inode和数据块,本质上它们是同一个文件的多个名称(引用)。修改任一链接都会同步内容,删除原文件后,只要存在至少一个硬链接,文件数据仍可访问。| 行为 | cp(无参数) |
cp -l(硬链接) |
|---|---|---|
| 磁盘空间占用 | 复制数据块,占用双倍空间 | 不占用额外空间(仅增加一个目录引用) |
| 文件独立性 | 独立副本,修改互不影响 | 所有链接指向同一数据,修改同步 |
| 原文件删除 | 不影响副本 | 只要存在任一硬链接,数据仍保留 |
# 为 file.txt 创建一个硬链接 link.txt
cp -l file.txt link.txt
限制条件:
ln 命令的 -d 参数,且通常需要root权限)。验证硬链接:
ls -i file.txt link.txt # 查看inode号(相同则为硬链接)
对比软链接:
cp -s 或直接使用 ln -s。cp -s:创建符号链接(软链接)。cp -a:归档模式(保留所有属性,但不默认用硬链接)。希望这个解释能帮到你!