linux软硬连接 ln命令举例详解

Feb 6th Thu, 2014/JiaJieChan/折腾/13,375 阅读/1 评论

本文转自:http://www.cnblogs.com/micky-zhou/archive/2012/08/01/2618203.html

举例:

1.对某个文件创建一个连接

[root@A ~]# ln -s /home/kk/ss.sh ~   #如果不写目标地址,即在当前目录建接立链接

[root@A ~]# ls

CentOS-Base.repo.oldboy  anaconda-ks.cfg  install.log  install.log.syslog  ss.sh此命令表示在家目录下创建与源文件同名的链接到/home/kk/ss.sh 符号连接

[root@A ~]# ln -s /home/kk/ss.sh ~/dd

[root@A ~]# ls

CentOS-Base.repo.oldboy  anaconda-ks.cfg  dd  install.log  install.log.syslog

此命令表示在家目录下建立链接到/home/kk/ss.sh 并且名字为dd的符号连接(前提是在家目录下没有abc这个目录)

2.对某个目录创建符号连接

[root@A home]# ln -s /home/kk /home/abc

[root@A home]# ls

abc  apache  kk  oldboy

[root@A home]# cd abc

[root@A abc]# ls

ss.sh

此命令表示在/home目录下创建一个链接到/home/kk目录的名字为abc的符号连接。

[root@A home]# rm abc

rm: remove symbolic link `abc'? y    #删除所作目录链接时的提示

[root@A ~]# ln -s /tmp ~/

[root@A ~]# ls

CentOS-Base.repo.oldboy  anaconda-ks.cfg  install.log  install.log.syslog  tmp

此命令表示在家目录下创建一个与源文件夹同名的符号连接

3.对某个文件创建一个硬连接

[root@A ~]# ln /home/kk/ss.sh ~/

[root@A ~]# ls -l

total 60

-rw-r--r-- 1 root root  2239 Oct 24 09:30 CentOS-Base.repo.oldboy

-rw------- 1 root root  1074 Nov 10 12:28 anaconda-ks.cfg

-rw-r--r-- 1 root root 26403 Nov 10 12:28 install.log

-rw-r--r-- 1 root root  4378 Nov 10 12:28 install.log.syslog

-rw-r--r-- 2 root root    82 Dec 26 14:31 ss.sh

此命令表示在家目录下创建与源文件同名的链接到/home/kk/ss.sh硬链接,而且目标文件的颜色和原来一样,

ls –l也无法显示链接的路径

[root@A ~]# ln /home/kk/ss.sh ~/abc

[root@A ~]# ls

CentOS-Base.repo.oldboy  abc  anaconda-ks.cfg  install.log  install.log.syslog

此命令表示在家目录下建立链接到/tmp/abc.txt 并且名字为abc的硬链接(前提是在家目录下没有abc这个目录)

abc目录己存在的情况

[root@A ~]# mkdir abc

[root@A ~]# ls

CentOS-Base.repo.oldboy  abc  anaconda-ks.cfg  install.log  install.log.syslog

[root@A ~]# ln /home/kk/ss.sh ~/abc    #做硬链接

[root@A ~]# ls

CentOS-Base.repo.oldboy  abc  anaconda-ks.cfg  install.log  install.log.syslog

[root@A ~]# cd abc

[root@A abc]# ls

ss.sh

 

源文件是目录不可以做硬链接

[root@A ~]# ln /home/kk ~/abc

ln: `/home/kk': hard link not allowed for directory

4.参数 -v的用法

硬链接:

[root@A home]# ln -v /home/kk/ss.sh /home    #加上参数v后,

create hard link `/home/ss.sh' to `/home/kk/ss.sh' #会用文字显示源文件到目标的链接

[root@A home]# ls

apache  kk  oldboy  ss.sh

[root@A home]# ln -vs /home/kk/ss.sh /home  #创建名子相同的软链接

create symbolic link `/home/ss.sh' to `/home/kk/ss.sh' #会用文字显示源文件到目标的链接

ln: creating symbolic link `/home/ss.sh' to `/home/kk/ss.sh': File exists  #同时也出现了己存在提示

软链接

[root@A home]# ln -vs /home/kk/ss.sh /home/dd  #加上参数v后的软链接

create symbolic link `/home/dd' to `/home/kk/ss.sh' #会用文字显示源文件到目标的链接

[root@A home]# ls

apache  dd  kk  oldboy  ss.sh

青绿色的软链接,跟原来颜色一样的是硬链接

5.-f的用法

[root@A home]# ls

apache  dd  kk  oldboy  ss.sh        #dd 是己存在软链接;ss.sh是己存在硬链接

[root@A home]# ln -s -f /home/kk/ss.sh /home    #创建/home/kk/ss.sh的软链接

[root@A home]# ls

apache  dd  kk  oldboy  ss.sh              #上面加了f参数,ss.sh现在是软链接

[root@A home]# ln /home/kk/ss.sh /home/dd    #创建/home/kk/ss.sh 的硬链接,名子同样是dd

ln: creating hard link `/home/dd' to `/home/kk/ss.sh': File exists     #提示出现了,己存在

[root@A home]# ln -f /home/kk/ss.sh /home/dd  #加上f参数后,提示没有了

[root@A home]# ls

apache  dd  kk  oldboy  ss.sh             #dd变成链接了,

-f的主要过程:先将同名的软链接dd删除,然后再创建硬链接dd

6.-d-b的用法

[root@A home]# ln /home/kk /home/dd        #创建硬链接不允许

ln: `/home/kk': hard link not allowed for directory #不允许对目录创建硬链接

[root@A home]# ln -F /home/kk /home/dd      #加上-d参数

ln: creating hard link `/home/dd' to `/home/kk': Operation not permitted    #为什么还是不行呀?

7.-i的用法

[root@A home]# ln -s /home/kk/ss.sh   #创建软链接

[root@A home]# ls                  #查看

apache  kk  oldboy  ss.sh

[root@A home]# ln -fi /home/kk/ss.sh   #加上-f参数删除同名的,加上-i参数-在删除之前给出提示

ln: replace `./ss.sh'?   #提示

 

[root@A home]# ln -fi /home/kk/ss.sh

ln: replace `./ss.sh'? n                  #我选择了n

[root@A home]# ls                    #查看

apache  kk  oldboy  ss.sh             #还存在

[root@A home]# ln -fb /home/kk/ss.sh     #加上参数b

[root@A home]# ls                    #查看

apache  kk  oldboy  ss.sh  ss.sh~     #之前存在的软链接被更名备份了,然后创建同名的硬链接

声明: 本文采用 BY-NC-SA 协议进行许可. 转载请出示版权信息.
  1. May 17th, 2014 at 14:01 / #Url

    学习了 不错

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
支持使用Gravatar头像

JiaJieChan提醒您: 要回复某人的评论,请将鼠标移动到那条评论,评论右边就会出现Replay字样(一定是要鼠标指针中的评论),在评论框中出现的的后面下一行填写评论提交即可.被回复者将收到邮件通知噢; 要是想直接对本文评论请直接在评论框留言即可,然后点提交.