W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
用來為文件創(chuàng)建鏈接
ln命令 用來為文件創(chuàng)建鏈接,鏈接類型分為硬鏈接和符號鏈接兩種,默認的鏈接類型是硬鏈接。如果要創(chuàng)建符號鏈接必須使用"-s"選項。
注意:符號鏈接文件不是一個獨立的文件,它的許多屬性依賴于源文件,所以給符號鏈接文件設置存取權限是沒有意義的。
ln [選項]... [-T] 目標 鏈接名 (第一種格式)
或:ln [選項]... 目標 (第二種格式)
或:ln [選項]... 目標... 目錄 (第三種格式)
或:ln [選項]... -t 目錄 目標... (第四種格式)
--backup[=CONTROL] 為每個已存在的目標文件創(chuàng)建備份文件
-b 類似--backup,但不接受任何參數(shù)
-d, -F, --directory 創(chuàng)建指向目錄的硬鏈接(只適用于超級用戶)
-f, --force 強行刪除任何已存在的目標文件
-i, --interactive 覆蓋既有文件之前先詢問用戶
-L, --logical 取消引用作為符號鏈接的目標
-n, --no-dereference 把符號鏈接的目的目錄視為一般文件
-P, --physical 直接將硬鏈接到符號鏈接
-r, --relative 創(chuàng)建相對于鏈接位置的符號鏈接
-s, --symbolic 對源文件建立符號鏈接,而非硬鏈接
-S, --suffix=SUFFIX 用"-b"參數(shù)備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的備份字符串是符號“~”,用戶可通過“-S”參數(shù)來改變它
-t, --target-directory=DIRECTORY 指定要在其中創(chuàng)建鏈接的DIRECTORY
-T, --no-target-directory 將“LINK_NAME”視為常規(guī)文件
-v, --verbose 打印每個鏈接文件的名稱
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
none, off # 不進行備份(即使使用了--backup 選項)
numbered, t # 備份文件加上數(shù)字進行排序
existing, nil # 若有數(shù)字的備份文件已經(jīng)存在則使用數(shù)字,否則使用普通方式備份
simple, never # 永遠使用普通方式備份
將目錄/usr/mengqc/mub1下的文件m2.c鏈接到目錄/usr/liu下的文件a2.c
cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c
在執(zhí)行l(wèi)n命令之前,目錄/usr/liu中不存在a2.c文件。執(zhí)行l(wèi)n之后,在/usr/liu目錄中才有a2.c這一項,表明m2.c和a2.c鏈接起來(注意,二者在物理上是同一文件),利用ls -l命令可以看到鏈接數(shù)的變化。
在目錄/usr/liu下建立一個符號鏈接文件abc,使它指向目錄/usr/mengqc/mub1
ln -s /usr/mengqc/mub1 /usr/liu/abc
執(zhí)行該命令后,/usr/mengqc/mub1代表的路徑將存放在名為/usr/liu/abc的文件中。
Linux具有為一個文件起多個名字的功能,稱為鏈接。被鏈接的文件可以存放在相同的目錄下,但是必須有不同的文件名,而不用在硬盤上為同樣的數(shù)據(jù)重復備份。另外,被鏈接的文件也可以有相同的文件名,但是存放在不同的目錄下,這樣只要對一個目錄下的該文件進行修改,就可以完成對所有目錄下同名鏈接文件的修改。對于某個文件的各鏈接文件,我們可以給它們指定不同的存取權限,以控制對信息的共享和增強安全性。
文件鏈接有兩種形式,即硬鏈接和符號鏈接。
ln功能說明:是為某一個文件在另外一個位置建立一個同步的鏈接,當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然后在其它的目錄下用ln命令鏈接(link)它就可以,不必重復的占用磁盤空間。
?? ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發(fā)生相同的變化。
建立硬鏈接時,在另外的目錄或本目錄中增加目標文件的一個目錄項,這樣,一個文件就登記在多個目錄中。如下所示的m2.c文件就在目錄mub1和liu中都建立了目錄項。
ls -ailR
.:
total 16
922730 drwxr-xr-x 4 root root 4096 Jun 17 11:18 .
393217 drwxrwxrwt. 9 root root 4096 Jun 17 11:19 ..
922733 drwxr-xr-x 2 root root 4096 Jun 17 11:18 liu
922731 -rw-r--r-- 3 root root 0 Jun 17 11:18 m2.c
922732 drwxr-xr-x 2 root root 4096 Jun 17 11:18 mub1
./liu:
total 8
922733 drwxr-xr-x 2 root root 4096 Jun 17 11:18 .
922730 drwxr-xr-x 4 root root 4096 Jun 17 11:18 ..
922731 -rw-r--r-- 3 root root 0 Jun 17 11:18 m2.c
./mub1:
total 8
922732 drwxr-xr-x 2 root root 4096 Jun 17 11:18 .
922730 drwxr-xr-x 4 root root 4096 Jun 17 11:18 ..
922731 -rw-r--r-- 3 root root 0 Jun 17 11:18 m2.c
創(chuàng)建硬鏈接后,己經(jīng)存在的文件的索引節(jié)點號(inode)會被多個目錄文件項使用。一個文件的硬鏈接數(shù)可以在目錄的長列表格式的第二列中看到,無額外鏈接的文件的鏈接數(shù)為1。
在默認情況下,ln命令創(chuàng)建硬鏈接。ln命令會增加鏈接數(shù),rm命令會減少鏈接數(shù)。一個文件除非鏈接數(shù)為0,否則不會從文件系統(tǒng)中被物理地刪除。
對硬鏈接有如下限制:
符號鏈接也稱為軟鏈接,是將一個路徑名鏈接到一個文件。這些文件是一種特別類型的文件。事實上,它只是一個文本文件(如下所示的abc文件),其中包含它提供鏈接的另一個文件的路徑名,如虛線箭頭所示。另一個文件是實際包含所有數(shù)據(jù)的文件。所有讀、寫文件內(nèi)容的命令被用于符號鏈接時,將沿著鏈接方向前進來訪問實際的文件。
$ ls -il
total 0
922736 lrwxrwxrwx 1 root root 5 Jun 17 11:27 abc -> a.txt
922735 -rw-r--r-- 1 root root 0 Jun 17 11:27 a.txt
與硬鏈接不同的是,符號鏈接確實是一個新文件,當然它具有不同的索引節(jié)點號;而硬鏈接并沒有建立新文件。
符號鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接,也可以在不同文件系統(tǒng)之間做符號鏈接。
用ln -s命令建立符號鏈接時,源文件最好用絕對路徑名。這樣可以在任何工作目錄下進行符號鏈接。而當源文件用相對路徑時,如果當前的工作路徑與要創(chuàng)建的符號鏈接文件所在路徑不同,就不能進行鏈接。
符號鏈接保持了鏈接與源文件或目錄之間的區(qū)別:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: