ln命令 用來(lái)為文件創(chuàng)建鏈接,鏈接類型分為硬鏈接和符號(hào)鏈接兩種,默認(rèn)的鏈接類型是硬鏈接。如果要?jiǎng)?chuàng)建符號(hào)鏈接必須使用"-s"選項(xiàng)。
命令格式
ln [參數(shù)][源文件或目錄][目標(biāo)文件或目錄]
命令功能
linux文件系統(tǒng)中,有所謂的鏈接(link),我們可以將其視為檔案的別名,而鏈接又可分為兩種 : 硬鏈接(hard link)與軟鏈接(symbolic link),硬鏈接的意思是一個(gè)檔案可以有多個(gè)名稱,而軟鏈接的方式則是產(chǎn)生一個(gè)特殊的檔案,該檔案的內(nèi)容是指向另一個(gè)檔案的位置。硬鏈接是存在同一個(gè)文件系統(tǒng)中,而軟鏈接卻可以跨越不同的文件系統(tǒng)。
軟連接
- 軟鏈接,以路徑的形式存在。類似于windows操作系統(tǒng)中的快捷方式
- 軟鏈接可以 跨文件系統(tǒng) ,硬鏈接不可以
- 軟鏈接可以對(duì)一個(gè)不存在的文件名進(jìn)行鏈接
- 軟鏈接可以對(duì)目錄進(jìn)行鏈接
硬鏈接
- 硬鏈接,以文件副本的形式存在。但不占用實(shí)際空間。
- 不允許給目錄創(chuàng)建硬鏈接
- 硬鏈接只有在同一個(gè)文件系統(tǒng)中才能創(chuàng)建
命令參數(shù)
- -b 刪除,覆蓋以前建立的鏈接
- -d 允許超級(jí)用戶制作目錄的硬鏈接
- -f 強(qiáng)制執(zhí)行
- -i 交互模式,文件存在則提示用戶是否覆蓋
- -n 把符號(hào)鏈接視為一般目錄
- -s 軟鏈接(符號(hào)鏈接)
- -v 顯示詳細(xì)的處理過(guò)程
- -S “-S<字尾備份字符串> ”或 “–suffix=<字尾備份字符串>”
- -V “-V<備份方式>”或“–version-control=<備份方式>”
- –help 顯示幫助信息
- –version 顯示版本信息
給rumenz.txt創(chuàng)建一個(gè)軟連接
> ls -al
ls -al
total 4
drwxr-xr-x 2 root root 24 Feb 27 22:03 .
drwxr-xr-x 8 root root 299 Feb 26 19:44 ..
-rw-r--r-- 1 root root 22 Feb 27 22:03 rumenz.txt
> ln -s rumenz.txt newrumenz.txt
> ls -al
total 4
drwxr-xr-x 2 root root 45 Feb 27 22:03 .
drwxr-xr-x 8 root root 299 Feb 26 19:44 ..
lrwxrwxrwx 1 root root 10 Feb 27 22:03 newrumenz.txt -> rumenz.txt
-rw-r--r-- 1 root root 22 Feb 27 22:03 rumenz.txt
newrumenz.txt就是rumenz.txt的軟連接,修改newrumenz.txt文件的內(nèi)容,rumenz.txt也會(huì)跟著變,刪除newrumenz.txt,rumenz.txt內(nèi)容不受任何影響。但是刪除rumenz.txt,ls newrumenz.txt時(shí),newrumenz.txt會(huì)變色或者會(huì)一直閃爍。
給rumenz.txt創(chuàng)建一個(gè)硬連接
> ls rumenz.txt oldrumenz.txt
> ls -al
total 8
drwxr-xr-x 2 root root 45 Feb 27 22:12 .
drwxr-xr-x 8 root root 299 Feb 26 19:44 ..
-rw-r--r-- 2 root root 8 Feb 27 22:12 oldrumenz.txt
-rw-r--r-- 2 root root 8 Feb 27 22:12 rumenz.txt
修改oldrumenz.txt文件內(nèi)容,rumenz.txt內(nèi)容也會(huì)跟著改變,刪除oldrumenz.txt,rumenz.txt內(nèi)容不受任何影響。刪除rumenz.txt,oldrumenz.txt內(nèi)容不受任何影響。
給目錄創(chuàng)建軟連接(不能給目錄創(chuàng)建硬連接)
> ln -sv lib lib64
> ls -al
drwxr-xr-x 8 root root 312 Feb 27 22:16 .
drwxr-xr-x 3 root root 17 Jan 29 23:06 ..
drwxr-xr-x 2 root root 27 Feb 27 22:14 lib
lrwxrwxrwx 1 root root 4 Feb 27 22:16 lib64 -> lib/