ln命令 用來為文件創建鏈接,鏈接類型分為硬鏈接和符號鏈接兩種,默認的鏈接類型是硬鏈接。如果要創建符號鏈接必須使用"-s"選項。
命令格式
ln [參數][源文件或目錄][目標文件或目錄]
命令功能
linux文件系統中,有所謂的鏈接(link),我們可以將其視為檔案的別名,而鏈接又可分為兩種 : 硬鏈接(hard link)與軟鏈接(symbolic link),硬鏈接的意思是一個檔案可以有多個名稱,而軟鏈接的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬鏈接是存在同一個文件系統中,而軟鏈接卻可以跨越不同的文件系統。
軟連接
- 軟鏈接,以路徑的形式存在。類似于windows操作系統中的快捷方式
- 軟鏈接可以 跨文件系統 ,硬鏈接不可以
- 軟鏈接可以對一個不存在的文件名進行鏈接
- 軟鏈接可以對目錄進行鏈接
硬鏈接
- 硬鏈接,以文件副本的形式存在。但不占用實際空間。
- 不允許給目錄創建硬鏈接
- 硬鏈接只有在同一個文件系統中才能創建
命令參數
- -b 刪除,覆蓋以前建立的鏈接
- -d 允許超級用戶制作目錄的硬鏈接
- -f 強制執行
- -i 交互模式,文件存在則提示用戶是否覆蓋
- -n 把符號鏈接視為一般目錄
- -s 軟鏈接(符號鏈接)
- -v 顯示詳細的處理過程
- -S “-S<字尾備份字符串> ”或 “–suffix=<字尾備份字符串>”
- -V “-V<備份方式>”或“–version-control=<備份方式>”
- –help 顯示幫助信息
- –version 顯示版本信息
給rumenz.txt創建一個軟連接
> 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文件的內容,rumenz.txt也會跟著變,刪除newrumenz.txt,rumenz.txt內容不受任何影響。但是刪除rumenz.txt,ls newrumenz.txt時,newrumenz.txt會變色或者會一直閃爍。
給rumenz.txt創建一個硬連接
> 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文件內容,rumenz.txt內容也會跟著改變,刪除oldrumenz.txt,rumenz.txt內容不受任何影響。刪除rumenz.txt,oldrumenz.txt內容不受任何影響。
給目錄創建軟連接(不能給目錄創建硬連接)
> 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/