创建Linux 硬链接与软连接


在 Linux 中,创建硬链接和软链接的命令是 ln,但它们的格式和选项有所不同。以下是详细的命令格式和示例说明:


1. 创建硬链接

命令格式
ln 源文件 硬链接文件名
参数说明
  • 源文件:需要创建硬链接的目标文件。
  • 硬链接文件名:新创建的硬链接文件的名称。
示例
# 创建文件
echo "Hello, Hard Link" > file.txt

# 创建硬链接
ln file.txt hardlink.txt

# 查看 inode 和链接数
ls -li file.txt hardlink.txt
# 输出示例:
# 1050000 -rw-r--r-- 2 user group 17 Jan 1 10:00 file.txt
# 1050000 -rw-r--r-- 2 user group 17 Jan 1 10:00 hardlink.txt
  • 说明
    • file.txthardlink.txt 的 inode 相同(1050000),且链接数变为 2
    • 删除 file.txt 后,hardlink.txt 仍然可以访问数据。

2. 创建软链接

命令格式
ln -s 目标文件或目录 软链接文件名
参数说明
  • -s:表示创建软链接(符号链接)。
  • 目标文件或目录:软链接指向的目标文件或目录。
  • 软链接文件名:新创建的软链接文件的名称。
示例
# 创建文件
echo "Hello, Symbolic Link" > target.txt

# 创建软链接
ln -s target.txt softlink.txt

# 查看软链接
ls -l softlink.txt
# 输出示例:
# lrwxrwxrwx 1 user group 10 Jan 1 10:00 softlink.txt -> target.txt
  • 说明
    • softlink.txt 是一个独立的文件,文件类型为 l(链接),内容为目标路径 target.txt
    • 删除 target.txt 后,softlink.txt 会失效(悬空链接)。

3. 创建目录的软链接

软链接可以指向目录,而硬链接通常不支持目录(避免目录树循环)。

示例
# 创建目录
mkdir mydir

# 创建目录的软链接
ln -s mydir dirlink

# 查看软链接
ls -l dirlink
# 输出示例:
# lrwxrwxrwx 1 user group 5 Jan 1 10:00 dirlink -> mydir

4. 硬链接与软链接的对比示例

创建文件与链接
# 创建原文件
echo "This is a test file" > original.txt

# 创建硬链接
ln original.txt hardlink.txt

# 创建软链接
ln -s original.txt softlink.txt
查看文件信息
ls -li original.txt hardlink.txt softlink.txt
# 输出示例:
# 1050000 -rw-r--r-- 2 user group 20 Jan 1 10:00 original.txt
# 1050000 -rw-r--r-- 2 user group 20 Jan 1 10:00 hardlink.txt
# 1050001 lrwxrwxrwx 1 user group 12 Jan 1 10:00 softlink.txt -> original.txt
删除原文件后的表现
# 删除原文件
rm original.txt

# 硬链接仍可访问数据
cat hardlink.txt  # 输出 "This is a test file"

# 软链接失效
cat softlink.txt  # 报错:No such file or directory

5. 常用选项

  • -v:显示详细的创建过程。

    ln -sv target.txt softlink.txt
    # 输出:softlink.txt -> target.txt
    
  • -f:强制覆盖已存在的链接文件。

    ln -sf new_target.txt softlink.txt
    
  • -i:在覆盖文件前提示确认。

    ln -si target.txt softlink.txt
    

6. 总结

命令格式用途
创建硬链接ln 源文件 硬链接文件名创建共享 inode 的硬链接
创建软链接ln -s 目标文件或目录 软链接文件名创建指向目标路径的软链接
创建目录软链接ln -s 目标目录 软链接目录名创建指向目录的软链接

通过 ln 命令,可以灵活地创建硬链接和软链接,满足不同的文件管理和使用需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值