ln命令
功能说明
ln命令用来在文件或目录之间创建链接。
Linux下的链接有两种,一种是硬链接(Hard Link),另一种是符号链接(Symbolic Link也就是常说的软链接),默认使用ln命令创建的是硬链接。
- 硬链接
是指通过文件的inode来进行链接。在Linux的文件系统中,保存在磁盘的所有类型的文件都会分配一个编号,这
个编号称为inode号(Inode Index)。多个文件指向同一个inode在Linux系统中是允许的,这就是所谓的硬链接。硬链接的作用是允许一个文件拥有多个有效的路径名,这样用户就可以对一些重要文件建立硬链接,以防止误删除操作。因为对就该文件的inode有一个以上的链接,所以只删除一个链接并不影响inode本身和其他链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会释放,也就是说,此时文件才会被真正删除。
- 符号链接
也叫软链接,软链接类似于Windows的快捷方式,因此软链接是一个指向真正的文件或者目录位置的符号连接。
用法如下
硬链接 ln file link 软链接 ln -s item link 这里的item可以是文件也可以是目录 |
命令参数
选项 | 含义 |
-f | 如果在目标位置存在与链接名相同的文件,这个文件将被删除 |
-s | 进行软链接 |
-d | 允许系统管理员硬链接自己的目录 |
-b | 对将在链接时会被覆盖或者删除的文件进行备份 |
示例
不带参数,将文件硬链接
[[email protected] shell]# ln test.sh htest.sh #对源文件test.sh创建硬链接 [[email protected] shell]# ls -li #可以看到二个文件inode号相同 总用量 8 68033834 -rw-r--r--. 2 root root 4 11月 11 16:47 htest.sh 68033834 -rw-r--r--. 2 root root 4 11月 11 16:47 test.sh [[email protected] shell]# ln htest.sh /tmp/ #链接到另一个目录,目标可以不写文件名 [[email protected] shell]# ls -li /tmp/ #相同名称的硬链接,inode号也相同 总用量 32 68033834 -rw-r--r--. 4 root root 4 11月 11 16:47 htest.sh 101282617 -rw-------. 1 root root 26843 11月 10 15:58 yum_save_tx.2016.r6hAcv.yumtx [[email protected] shell]# |
使用-b参数,链接前先备份
[[email protected] shell]# ln -b htest.sh test.sh #-b硬链接前先备份 [[email protected] shell]# ls -li #以~结尾的就是备份文件 总用量 12 68033834 -rw-r--r--. 4 root root 4 11月 11 16:47 htest.sh 68033834 -rw-r--r--. 4 root root 4 11月 11 16:47 test.sh 68033834 -rw-r--r--. 4 root root 4 11月 11 16:47 test.sh~ |
-s软链接,将/etcinittab文件符号链接到/opt下
[[email protected] ~]# ln -s /etc/inittab /opt [[email protected] ~]# ls -li /opt/inittab #下面是软链接的显示,inode号不同 26186 lrwxrwxrwx. 1 root root 12 11月 11 18:02 /opt/inittab -> /etc/inittab [[email protected] ~]# ls -li /etc/inittab 34140601 -rw-r--r--. 1 root root 511 3月 6 2015 /etc/inittab |