? ? ? ?鏈接文件是Linux文件系統(tǒng)的一個優(yōu)勢。如需要在系統(tǒng)上維護同一文件的兩份或多份副本,除了保存多份單獨的物理文件副本之外,還可以采用保存一份物理文件副本和多個虛擬副本的方法。這種虛擬的副本就稱為鏈接。
? ? ? ?鏈接是目錄中指向文件真實位置的占位符。在Linux中有兩種不同類型的文件鏈接:
? ? ? ?1、符號鏈接
? ? ? ?2、硬鏈接?
? ? ? ?符號鏈接就是一個實實在在的文件,它指向存放在虛擬目錄結構中某個地方的另一個文件。這兩個通過符號鏈接在一起的文件,彼此的內(nèi)容并不相同。?
? ? ? ?要為一個文件創(chuàng)建符號鏈接,原始文件必須事先存在。然后可以使用ln命令以及-s選項來創(chuàng)建符號鏈接。下面南昌網(wǎng)絡公司小編就來為大家介紹一下具體的創(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?
? ? ? ?$
? ? ? ?在上面的例子中,注意符號鏈接的名字sl_data_file位于ln命令中的第二個參數(shù)位置上。顯示在長列表中符號文件名后的->符號表明該文件是鏈接到文件data_file上的一個符號鏈接。?
? ? ? ?另外還要注意的是,符號鏈接的文件大小與數(shù)據(jù)文件的文件大小。符號鏈接sl_data_file只有9個字節(jié),而data_file有1092個字節(jié)。這是因為sl_data_file僅僅只是指向data_file而已。它們的內(nèi)容并不相同,是兩個完全不同的文件。?
? ? ? ?另一種證明鏈接文件是獨立文件的方法是查看inode編號。文件或目錄的inode編號是一個用于標識的唯一數(shù)字,這個數(shù)字由內(nèi)核分配給文件系統(tǒng)中的每一個對象。要查看文件或目錄的inode 編號,可以給ls命令加入-i參數(shù)。?
? ? ? ?$ ls -i *data_file?
? ? ? ?296890 data_file ?296891 sl_data_file?
? ? ? ?$ ?
? ? ? ?從這個例子中可以看出數(shù)據(jù)文件的inode編號是296890,而sl_data_file的inode編號則是296891。所以說它們是不同的文件。?
? ? ? ?硬鏈接會創(chuàng)建獨立的虛擬文件,其中包含了原始文件的信息及位置。但是它們從根本上而言是同一個文件。引用硬鏈接文件等同于引用了源文件。要創(chuàng)建硬鏈接,原始文件也必須事先存在,只不過這次使用ln命令時不再需要加入額外的參數(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編號以及長列表。注意,帶有硬鏈接的文件共享inode編號。這是因為它們終歸是同一個文件。還要注意的是,鏈接計數(shù) (列表中第三項)顯示這兩個文件都有兩個鏈接。另外,它們的文件大小也一模一樣。?
? ? ? ?此外,南昌網(wǎng)絡公司-百恒網(wǎng)絡要提醒大家的是,復制鏈接文件的時候一定要小心。如果使用cp命令復制一個文件,而該文件又已經(jīng)被鏈接到了另一個源文件上,那么你得到的其實是源文件的一個副本。這很容易讓人犯暈。用不著復制鏈接文件,可以創(chuàng)建原始文件的另一個鏈接。同一個文件擁有多個鏈接,這完全沒有問題。但是,千萬別創(chuàng)建軟鏈接文件的軟鏈接。這會形成混亂的鏈接鏈,不僅容易斷裂,還會造成各種麻煩。?
? ? ? ?以上就是百恒網(wǎng)絡為大家介紹的關于符號鏈接和硬鏈接的創(chuàng)建方法,希望對大家有所幫助。百恒網(wǎng)絡專注于南昌網(wǎng)站建設、APP開發(fā)、微信開發(fā)等服務,如有需要,我們隨時為您效勞!