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~     #之前存在的軟鏈接被更名備份了,然后創建同名的硬鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM