Linux ln 命令是linux中一个非常重要命令,用于在文件之间创建链接。
链接有硬链接和软连接之分,下面分别介绍它们的区别。
硬链接和软链接
硬链接
链接是指通过索引节点来进行连接。就是同一个文件使用了多个别名但是inode相同。
当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结构中的位置。
软链接
软连接又叫符号链接,类似于windows的快捷方式。
如果原始文件删除它的符号链接(软连接)就不可访问了。
区别总结
软链接
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
语法
ln [选项] [源文件或目录] [目标文件或目录]
选项
选项 | 说明 |
---|---|
-b或--backup | 删除,覆盖目标文件之前的备份。 |
-d或-F或--directory | 建立目录的硬连接 |
-f或--force | 强行建立文件或目录的连接,不论文件或目录是否存在。 |
-i或--interactive | 覆盖既有文件之前先询问用户 |
-n或--no-dereference | 把符号连接的目的目录视为一般文件。 |
-s或--symbolic | 对源文件建立软连接,而非硬连接。 |
-S<字尾备份字符串>或--suffix=<字尾备份字符串> | 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的字尾备份字符串是符号"~",您可通过"-S"参数来改变它。 |
-v或--verbose | 显示指令执行过程。 |
-V<备份方式>或--version-control=<备份方式> | 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-S"参数变更,当使用"-V"参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串。 |
--help | 帮助信息 |
--version | 显示版本信息 |
例子
下面介绍一些例子了解该命令的使用方法。
创建软链接
创建软链接需要使用-s参数。
[root@localhost script]# ln -s bakdb.sh bakdb
[root@localhost script]# ll
total 4
lrwxrwxrwx 1 root root 8 May 5 20:51 bakdb -> bakdb.sh
-rwxr-xr-x 1 root root 207 Dec 5 14:40 bakdb.sh
如上所示,使用winscp 打开查看,软连接有一个类似于windows快捷方式的图标。
创建硬链接
创建硬链接不需要使用-s参数。
[root@localhost script]# ln bakdb.sh bakdb
[root@localhost script]# ll
total 8
-rwxr-xr-x 2 root root 207 Dec 5 14:40 bakdb
-rwxr-xr-x 2 root root 207 Dec 5 14:40 bakdb.sh
如上所示,使用winscp 打开查看,硬链接没有类似于windows快捷方式的图标。