溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中如何使用ln命令在文件之間建立連接

發(fā)布時間:2021-09-26 15:38:25 來源:億速云 閱讀:132 作者:iii 欄目:系統(tǒng)運維

這篇文章主要介紹“Linux中如何使用ln命令在文件之間建立連接”,在日常操作中,相信很多人在Linux中如何使用ln命令在文件之間建立連接問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux中如何使用ln命令在文件之間建立連接”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

在Unix世界里有兩個'link'(連接)概念,一般稱之為硬連接和軟連接。一個硬連 接僅僅是一個文件名。(一個文件可以有好幾個文件名,只有將最后一個文件名從 磁盤上刪除,才能把這個文件刪掉。文件名的個數(shù)是由ls(1)來確定的。所有的文件 名都處于同一個狀態(tài),也就沒有什么lq源名字rq 之說。通常文件系統(tǒng)里的一個 文件的所有名字包含著一樣的數(shù)據(jù)信息,不過這樣也不是必需的。)一個軟連接 (或符號連接)是完全不同的:它是一個包含了路徑信息的小小的指定文件。因此, 軟連接可以指向不同文件系統(tǒng)里的文件(比如由NFS裝載的不同機(jī)器文件系統(tǒng)上的文 件),甚至可以指向一個不一定確實存在的文件。在軟連接文件被訪問(系統(tǒng)調(diào)用 open(2) 或stat(2))的時候,操作系統(tǒng)用該文件所包含的路徑替換該文件的訪問介 入點,從而實現(xiàn)對所指文件的訪問。(用命令rm(1)和unlink(2)可以刪除連接,但 不是刪除該文件所指向的文件。系統(tǒng)指定調(diào)用lstat(2)和readlink(2) 來讀取連接 文件與其所指文件的狀態(tài)。到底是對軟連接文件操作,還是對被指向文件操作,由 于不同操作系統(tǒng)件存在不同的系統(tǒng)調(diào)用,而存在著差異。)

ln 在文件間產(chǎn)生連接。缺省時,產(chǎn)生硬連接,有-s選項,則產(chǎn)生符號(軟)連接。

如果僅僅只給出一個文件名,那么ln將在當(dāng)前目錄里產(chǎn)生這個文件的連接, 也就是說,以該文件(的最后一個)名稱等同的名字在當(dāng)前目錄里產(chǎn)生一個連接 (GNU范圍內(nèi)); 如果最后一個參數(shù)是一個已存在的目錄名, ln 將在那個目錄里給每一個源文件用以與源文件相同的文件名產(chǎn)生連接, (不同情況見以下--no-dereference的描述); 如果只給出兩個文件名,ln將產(chǎn)生源文件的連接; 如果最后一個參數(shù)不是一個目錄名或多于兩個文件名,則報錯。

缺省時,ln不刪除已存在的文件或符號連接。 (因此,它可以被用來鎖定目標(biāo)文件,即當(dāng)dest已經(jīng)不存在時) 但選項-f可以強(qiáng)制執(zhí)行。

在已存在的實現(xiàn)中,只有超級用戶才能建立目錄的硬連接。 POSIX 禁止系統(tǒng)調(diào)用link(2)和ln建立目錄的硬連接 (但是允許在不同的文件系統(tǒng)間建立硬連接)。

使用方式 : ln [options] source dist,其中 option 的格式為 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}][--help] [--version] [--]

說明 : Linux/Unix 檔案系統(tǒng)中,有所謂的連結(jié)(link),我們可以將其視為檔案的別名,而連結(jié)又可分為兩種 : 硬連結(jié)(hard link)與軟連結(jié)(symbolic link),硬連結(jié)的意思是一個檔案可以有多個名稱,而軟連結(jié)的方式則是產(chǎn)生一個特殊的檔案,該檔案的內(nèi)容是指向另一個檔案的位置。硬連結(jié)是存在同一個檔案系統(tǒng)中,而軟連結(jié)卻可以跨越不同的檔案系統(tǒng)。
ln source dist 是產(chǎn)生一個連結(jié)(dist)到 source,至于使用硬連結(jié)或軟鏈結(jié)則由參數(shù)決定。
不論是硬連結(jié)或軟鏈結(jié)都不會將原本的檔案復(fù)制一份,只會占用非常少量的磁碟空間。

-f : 鏈結(jié)時先將與 dist 同檔名的檔案刪除
-d : 允許系統(tǒng)管理者硬鏈結(jié)自己的目錄
-i : 在刪除與 dist 同檔名的檔案時先進(jìn)行詢問
-n : 在進(jìn)行軟連結(jié)時,將 dist 視為一般的檔案
-s : 進(jìn)行軟鏈結(jié)(symbolic link)
-v : 在連結(jié)之前顯示其檔名
-b : 將在鏈結(jié)時會被覆寫或刪除的檔案進(jìn)行備份
-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾
-V METHOD : 指定備份的方式
--help : 顯示輔助說明
--version : 顯示版本

注意:
如果不使用 -s 標(biāo)志,就不能在文件系統(tǒng)之間鏈接文件。
如果 TargetDirectory 已經(jīng)是鏈接到目錄上的一個符號鏈接,那么 ln 命令將現(xiàn)有的目標(biāo)視為文件。這意味著,類似于 ln -fs somepath/lname symdir 的命令不會遵循現(xiàn)有的 symdir 符號鏈接,作為代替,它會創(chuàng)建一個從 somepath/lname 到 symdir 的新的符號鏈接。

退出狀態(tài)
此命令返回以下的退出值:
0 所有指定的文件都成功鏈接上了。
>0 出現(xiàn)一次錯誤。

例:

代碼如下:


[root@localhost test_ln]# ln -s /home/zhangy/heartbeat ./   #在當(dāng)前目錄下,建立heartbeat的軟連接
[root@localhost test_ln]# ln -s /home/zhangy/test ./        #建立目錄的軟件接
[root@localhost test_ln]# ln /home/zhangy/tee.txt ./        #建立硬連接
[root@localhost test_ln]# ll      
總計 4
lrwxrwxrwx 1 root root 22 05-11 11:04 heartbeat -> /home/zhangy/heartbeat       #文件軟件接
-rw-r--r-- 2 root root  0 2010-11-24 tee.txt                                  #文件硬連接
lrwxrwxrwx 1 root root 17 05-11 11:04 test -> /home/zhangy/test                 #目錄軟件接



1.為了創(chuàng)建到一個文件的另一個鏈接(別名),請輸入:

代碼如下:


ln -f chap1 intro


這會將 chap1 鏈接到新的名稱, intro。如果 intro 不存在,那么會創(chuàng)建該文件名。如果 intro 已經(jīng)存在了,那么這個文件會被替換為指向 chap1的一個鏈接。然后 chap1 和 intro 文件名會指向同一個文件。對其中任何一個的更改都會出現(xiàn)在另一個中。如果一個文件名被 rm 命令刪除,那么該文件并沒有完全被刪除,因為它仍然以其它的名字存在。

2.為了將文件鏈接為另一個目錄中的相同名字,請輸入:

代碼如下:


ln  index manual


這會將 index 鏈接到新的名稱,manual/index。
注意:在示例 1 中的 intro 是一個文件的名稱;在示例 2 中的 manual 是一個已經(jīng)存在的目錄。

3.為了將幾個文件鏈接為另一個目錄中的名稱,請輸入:

代碼如下:


ln chap2 jim/chap3 /home/manual


這會將 chap2 鏈接到新的名稱 /home/manual/chap2;將 jim/chap3 鏈接到新的名稱 /home/manual/chap3。

4.如果想要在 ln 命令中使用模式匹配字符,請輸入:

代碼如下:


ln  manual/* .


這會將 manual 目錄中的所有文件鏈接到當(dāng)前目錄中, . (點),給他們在 manual 目錄中同樣的名稱。

注意: 必須在星號和句點之間輸入一個空格。

5.為了創(chuàng)建一個符號鏈接,輸入:

代碼如下:


ln -s /tmp/toc toc


這會在當(dāng)前的目錄中創(chuàng)建符號鏈接 toc。 toc 文件指向 /tmp/toc 文件。如果 /tmp/toc 文件已經(jīng)存在了,那么 cat toc 命令可以列出其內(nèi)容。

6.如果想要在不指明 TargetFile 參數(shù)的情況下得到相同的結(jié)果,請輸入:

代碼如下:


ln -s /tmp/toc

到此,關(guān)于“Linux中如何使用ln命令在文件之間建立連接”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI