首页 > 代码库 > Linux命令(19):ln命令

Linux命令(19):ln命令

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对将在链接时会被覆盖或者删除的文件进行备份

示例

    不带参数,将文件硬链接

[root@c7 shell]# ln test.sh htest.sh                           #对源文件test.sh创建硬链接

[root@c7 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

[root@c7 shell]# ln htest.sh /tmp/                            #链接到另一个目录,目标可以不写文件名

[root@c7 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

[root@c7 shell]# 



    使用-b参数,链接前先备份

[root@c7 shell]# ln -b htest.sh test.sh                      #-b硬链接前先备份

[root@c7 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下

[root@c7 ~]# ln -s /etc/inittab /opt                           

[root@c7 ~]# ls -li /opt/inittab                                #下面是软链接的显示,inode号不同

26186 lrwxrwxrwx. 1 root root 12 11月 11 18:02 /opt/inittab -> /etc/inittab

[root@c7 ~]# ls -li /etc/inittab 

34140601 -rw-r--r--. 1 root root 511 3月   6 2015 /etc/inittab

本文出自 “赵东伟的博客” 博客,请务必保留此出处http://zhaodongwei.blog.51cto.com/4233742/1871880

Linux命令(19):ln命令