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