ln命令举例详解

举例:

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~     #之前存在的软链接被更名备份了,然后创建同名的硬链接

posted on 2012-08-01 14:06 micky.zhou 阅读(...) 评论(...) 编辑 收藏

导航

公告