Linux ln 命令是linux中一个非常重要命令,用于在文件之间创建链接。

链接有硬链接和软连接之分,下面分别介绍它们的区别。

硬链接和软链接

硬链接 

链接是指通过索引节点来进行连接。就是同一个文件使用了多个别名但是inode相同。

当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在件结构中的位置。

软链接  

软连接又叫符号链接,类似于windows的快捷方式。

如果原始文件删除它的符号链接(软连接)就不可访问了。

区别总结

软链接

  1. 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  2. 软链接可以 跨文件系统 ,硬链接不可以
  3. 软链接可以对一个不存在的文件名进行链接
  4. 软链接可以对目录进行链接
硬链接
  1. 硬链接,以文件副本的形式存在。但不占用实际空间。
  2. 不允许给目录创建硬链接
  3. 硬链接只有在同一个文件系统中才能创建

语法

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

Linux ln 命令

如上所示,使用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 
Linux ln 命令

如上所示,使用winscp 打开查看,硬链接没有类似于windows快捷方式的图标。