linux文件管理命令ln
- 1、软链接
- 2、硬链接
- 3、命令参数
- 3.1、必要参数
- 3.2、选择参数
- 4、应用示例
- 4.1、创建硬链接
- 4.2、创建软链接(符号链接)
- 4.3、 对目录创建软链接
- 4.4、强制覆盖目标文件
- 5、应用场景
它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
ln [参数][源文件或目录][目标文件或目录]
参数格式:
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
Linux文件系统中,有所谓的链接,我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接与软链接(符号链接)。
硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
1、软链接
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式,它指向的是源文件或目录的路径,而不是 inode
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
- 删除源文件或目录后,软链接将失效。
2、硬链接
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
- 多个硬链接可以指向同一个 inode,因此它们实际上是同一个文件的不同访问入口,删除其中一个硬链接不会影响其他硬链接和文件本身的数据
3、命令参数
3.1、必要参数
- -s:创建符号链接(软链接),如果不使用该选项,默认创建硬链接。
- -f:强制创建链接,若目标文件已存在则覆盖。
- -i:交互模式,覆盖前提示确认。
- -v:显示详细操作信息。
- –backup[=CONTROL] 备份已存在的目标文件
- -b 类似 --backup ,但不接受参数
- -d 允许超级用户制作目录的硬链接
- -n 把符号链接视为一般目录
3.2、选择参数
- -S "-S<字尾备份字符串> "或 “–suffix=<字尾备份字符串>”
- -V “-V<备份方式>“或”–version-control=<备份方式>”
- –help 显示帮助信息
- –version 显示版本信息
4、应用示例
4.1、创建硬链接
#!/bin/bash
#创建一个测试文件
touch test.txt
#创建硬链接
ln test.txt test_hardlink.txt
#查看文件信息
ls -li test.txt test_hardlink.txt
在上述示例中,test_hardlink.txt 是 test.txt 的硬链接。通过 ls -li 命令可以看到它们的 inode 号码相同,并且链接数变为 2。
4.2、创建软链接(符号链接)
#!/bin/bash
# 创建软链接
ln -s test.txt test_symlink.txt
#查看文件信息
ls -li test.txt test_symlink.txt
在上述示例中,test_dir_symlink 是 test_dir 的软链接。通过 ls -ld 命令可以看到软链接的类型为 l,表示这是一个符号链接。
4.3、 对目录创建软链接
#!/bin/bash
# 创建一个测试目录
mkdir test_dir
# 创建目录的软链接
ln -s test_dir test_dir_symlink
# 查看目录信息
ls -ld test_dir test_dir_symlink
在上述示例中,test_dir_symlink 是 test_dir 的软链接。通过 ls -ld 命令可以看到软链接的类型为 l,表示这是一个符号链接。
4.4、强制覆盖目标文件
#!/bin/bash
# 创建一个目标文件
touch target.txt
# 强制覆盖目标文件创建软链接
ln -sf test.txt target.txt
ls -li test.txt target.txt
在上述示例中,使用 -f 选项强制覆盖已存在的 target.txt 文件,创建一个指向 test.txt 的软链接。
5、应用场景
- 节省磁盘空间:硬链接可以让多个文件名指向同一个 inode,从而节省磁盘空间。例如,在备份文件时,可以使用硬链接来避免重复存储相同的数据。
- 方便文件管理:软链接可以方便地创建文件或目录的快捷方式,例如在不同的目录中创建指向同一文件的软链接,方便用户访问。
- 软件升级:在软件升级时,可以使用软链接来指向不同版本的软件,从而实现平滑过渡。例如,将 /usr/bin/python 软链接到 /usr/bin/python3 或 /usr/bin/python2,方便用户切换不同版本的 Python 解释器。