在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
:归档模式(保留所有属性,但不默认用硬链接)。希望这个解释能帮到你!