在線客服系統(tǒng)
十三年專注于網(wǎng)站建設(shè)與互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā),低調(diào)、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒科技微信公眾號(hào) 掃一掃關(guān)注
tel-icon全國(guó)服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒科技微信公眾號(hào)

Linux文件系統(tǒng)中符號(hào)鏈接和硬鏈接的創(chuàng)建方法

百恒 2017-10-10 16:26:40 3631
? ? ? ?鏈接文件是Linux文件系統(tǒng)的一個(gè)優(yōu)勢(shì)。如需要在系統(tǒng)上維護(hù)同一文件的兩份或多份副本,除了保存多份單獨(dú)的物理文件副本之外,還可以采用保存一份物理文件副本和多個(gè)虛擬副本的方法。這種虛擬的副本就稱為鏈接。
? ? ? ?鏈接是目錄中指向文件真實(shí)位置的占位符。在Linux中有兩種不同類型的文件鏈接:
? ? ? ?1、符號(hào)鏈接
? ? ? ?2、硬鏈接?

? ? ? ?符號(hào)鏈接就是一個(gè)實(shí)實(shí)在在的文件,它指向存放在虛擬目錄結(jié)構(gòu)中某個(gè)地方的另一個(gè)文件。這兩個(gè)通過(guò)符號(hào)鏈接在一起的文件,彼此的內(nèi)容并不相同。?

? ? ? ?要為一個(gè)文件創(chuàng)建符號(hào)鏈接,原始文件必須事先存在。然后可以使用ln命令以及-s選項(xiàng)來(lái)創(chuàng)建符號(hào)鏈接。下面南昌網(wǎng)絡(luò)公司小編就來(lái)為大家介紹一下具體的創(chuàng)建方法。

? ? ? ?$ ls -l data_file?
? ? ? ?-rw-rw-r-- 1 christine christine 1092 May 21 17:27 data_file?
? ? ? ?$?
? ? ? ?$ ln -s data_file ?sl_data_file?
? ? ? ?$?
? ? ? ?$ ls -l *data_file?
? ? ? ?-rw-rw-r-- 1 christine christine 1092 May 21 17:27 data_file?
? ? ? ?lrwxrwxrwx 1 christine christine ? ?9 May 21 17:29 sl_data_file -> data_file?
? ? ? ?$

? ? ? ?在上面的例子中,注意符號(hào)鏈接的名字sl_data_file位于ln命令中的第二個(gè)參數(shù)位置上。顯示在長(zhǎng)列表中符號(hào)文件名后的->符號(hào)表明該文件是鏈接到文件data_file上的一個(gè)符號(hào)鏈接。?

? ? ? ?另外還要注意的是,符號(hào)鏈接的文件大小與數(shù)據(jù)文件的文件大小。符號(hào)鏈接sl_data_file只有9個(gè)字節(jié),而data_file有1092個(gè)字節(jié)。這是因?yàn)閟l_data_file僅僅只是指向data_file而已。它們的內(nèi)容并不相同,是兩個(gè)完全不同的文件。?

? ? ? ?另一種證明鏈接文件是獨(dú)立文件的方法是查看inode編號(hào)。文件或目錄的inode編號(hào)是一個(gè)用于標(biāo)識(shí)的唯一數(shù)字,這個(gè)數(shù)字由內(nèi)核分配給文件系統(tǒng)中的每一個(gè)對(duì)象。要查看文件或目錄的inode 編號(hào),可以給ls命令加入-i參數(shù)。?

? ? ? ?$ ls -i *data_file?
? ? ? ?296890 data_file ?296891 sl_data_file?
? ? ? ?$ ?

? ? ? ?從這個(gè)例子中可以看出數(shù)據(jù)文件的inode編號(hào)是296890,而sl_data_file的inode編號(hào)則是296891。所以說(shuō)它們是不同的文件。?

? ? ? ?硬鏈接會(huì)創(chuàng)建獨(dú)立的虛擬文件,其中包含了原始文件的信息及位置。但是它們從根本上而言是同一個(gè)文件。引用硬鏈接文件等同于引用了源文件。要?jiǎng)?chuàng)建硬鏈接,原始文件也必須事先存在,只不過(guò)這次使用ln命令時(shí)不再需要加入額外的參數(shù)了。?

? ? ? ?$ ls -l code_file?
? ? ? ?-rw-rw-r-- 1 christine christine 189 May 21 17:56 code_file?
? ? ? ?$?
? ? ? ?$ ln code_file ?hl_code_file?
? ? ? ?$?
? ? ? ?$ ls -li *code_file?
? ? ? ?296892 -rw-rw-r-- 2 christine christine 189 May 21 17:56 ?
? ? ? ?code_file?
? ? ? ?296892 -rw-rw-r-- 2 christine christine 189 May 21 17:56 ?
? ? ? ?hl_code_file?
? ? ? ?$?

? ? ? ?在上面的例子中,我們使用ls -li命令顯示了*code_files的inode編號(hào)以及長(zhǎng)列表。注意,帶有硬鏈接的文件共享inode編號(hào)。這是因?yàn)樗鼈兘K歸是同一個(gè)文件。還要注意的是,鏈接計(jì)數(shù) (列表中第三項(xiàng))顯示這兩個(gè)文件都有兩個(gè)鏈接。另外,它們的文件大小也一模一樣。?

? ? ? ?此外,南昌網(wǎng)絡(luò)公司-百恒網(wǎng)絡(luò)要提醒大家的是,復(fù)制鏈接文件的時(shí)候一定要小心。如果使用cp命令復(fù)制一個(gè)文件,而該文件又已經(jīng)被鏈接到了另一個(gè)源文件上,那么你得到的其實(shí)是源文件的一個(gè)副本。這很容易讓人犯暈。用不著復(fù)制鏈接文件,可以創(chuàng)建原始文件的另一個(gè)鏈接。同一個(gè)文件擁有多個(gè)鏈接,這完全沒(méi)有問(wèn)題。但是,千萬(wàn)別創(chuàng)建軟鏈接文件的軟鏈接。這會(huì)形成混亂的鏈接鏈,不僅容易斷裂,還會(huì)造成各種麻煩。?

? ? ? ?以上就是百恒網(wǎng)絡(luò)為大家介紹的關(guān)于符號(hào)鏈接和硬鏈接的創(chuàng)建方法,希望對(duì)大家有所幫助。百恒網(wǎng)絡(luò)專注于南昌網(wǎng)站建設(shè)、APP開(kāi)發(fā)、微信開(kāi)發(fā)等服務(wù),如有需要,我們隨時(shí)為您效勞!
400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號(hào)

歡迎您的光顧,我們將竭誠(chéng)為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
售后服務(wù) 售后服務(wù)
 
×