一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

linux 硬連接軟連接(轉(zhuǎn))

 昵稱4863058 2010-12-26

linux硬鏈接和軟鏈接的區(qū)別    


簡而言之,軟鏈接相當(dāng)于windows中的快捷方式,硬鏈接相當(dāng)于一個(gè)災(zāi)備系統(tǒng),數(shù)據(jù)存放在兩處,與復(fù)制不同

的是兩處之間存在同步機(jī)制,一處數(shù)據(jù)的改變會實(shí)時(shí)同步到另一處,另外,一處數(shù)據(jù)如果被刪除了,不會影響

到另一處的數(shù)據(jù).下面是詳細(xì)的介紹:

      硬連接指向的是節(jié)點(diǎn)(inode),是已存在文件的另一個(gè)名字,修改其中一個(gè),與其連接的文件同時(shí)被修

改;對硬鏈接文件進(jìn)行讀寫和刪除操作時(shí)候,效果和軟鏈接相同。但如果我們刪除硬鏈接文件的源文件,

硬鏈接文件仍然存在,而且保留了原有的內(nèi)容。這時(shí),系統(tǒng)就“忘記”了它曾經(jīng)是硬鏈接文件,而把他當(dāng)

成一個(gè)普通文件。
硬鏈接文件有兩個(gè)限制:
1、不允許給目錄創(chuàng)建硬鏈接;
2、只有在同一文件系統(tǒng)中的文件之間才能創(chuàng)建鏈接。

      軟連接指向的是路徑(path),軟鏈接又叫符號鏈接,這個(gè)文件包含了另一個(gè)文件的路徑名??梢允?/p>

任意文件或目錄,還可以鏈接不同文件系統(tǒng)的文件,和win下的快捷方式差不多。 軟鏈接文件甚至可以鏈

接不存在的文件,這就產(chǎn)生一般稱之為"斷鏈"的問題(或曰“現(xiàn)象"),鏈接文件甚至可以循環(huán)鏈接自己,類

似于編程語言中的遞歸。

命令格式:
ln -s source_path target_path   //軟鏈接文件

ln -d existfile newfile   //硬鏈接文件,如果不加任何參數(shù),默認(rèn)情況下就是硬鏈接.


示例:
$ ln httpd.conf httpd1.conf
$ ln -s httpd.conf httpd2.conf

第一條為硬鏈接,第二條為軟鏈接
$ ls -li   //查看一個(gè)文件或目錄的inode,要通過ls 命令的的 -i參數(shù),inode值相同的文件,他們的關(guān)

系是互為硬鏈接的關(guān)系
總用量 80
1077669    -rw-r--r--     2 sam       adm          34890 10月 31 00:57 httpd1.conf
1077668   lrwxrwxrwx     1 sam       adm             10 10月 31 00:58 httpd2.conf ->;

httpd.conf
1077669   -rw-r--r--     2 sam       adm          34890 10月 31 00:57 httpd.conf

可以看到,使用ls -li,軟連接只產(chǎn)生了10字節(jié)的快捷而已,硬連接卻實(shí)實(shí)在在的的拷貝。最前面的

inode硬鏈接和源文件是一樣的,而軟鏈接不一樣.對http1.conf進(jìn)行編輯,可以發(fā)現(xiàn)httpd.conf也發(fā)生了

一樣的變化.

現(xiàn)在使用命令:

$ rm httpd.conf

現(xiàn)在刪除鏈接的源文件,來比較不同之處

代碼:
$ ls -l
總用量 44
-rw-r--r--     1 sam       adm          34890 10月 31 00:57 httpd1.conf
lrwxrwxrwx     1 sam       adm             10 10月 31 00:58 httpd2.conf ->; httpd.conf

發(fā)現(xiàn),httpd2.conf實(shí)際已經(jīng)不存在了,是斷鏈,而httpd1.conf變也了普通文件.


一、硬鏈接

硬鏈接說白了是一個(gè)指針,指向文件索引節(jié)點(diǎn),系統(tǒng)并不為它重新分配inode。可以用:ln命令來建立硬鏈

接。語法:

ln [options] existingfile newfile
ln[options] existingfile-list directory

用法: 第一種:為”existingfile”創(chuàng)建硬鏈接,文件名為”newfile”。第二種:在”directory”目錄中,

為 ”existingfile-list”中包含的所有文件創(chuàng)建一個(gè)同名的硬鏈接。常用可選[options] –f 無論”

newfile”存在與否,都創(chuàng)建鏈接。-n 如果”newfile”已存在,就不創(chuàng)建鏈接。

下面舉一些例子:

$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 1 longcheng longcheng 57 8月 5 16:40 file2
$ ln file2 file2hard
$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard

注意在創(chuàng)建鏈接前,file1 顯示的鏈接數(shù)目為1,創(chuàng)建鏈接后(1)file1和file1hard的鏈接數(shù)目都變?yōu)?;(2)

file1和file1hard在inode號是一樣的(3) file1和file1hard顯示的文件大小也是一樣??梢娺M(jìn)行了ln命

令的操作結(jié)果:file1和file1hard是同一個(gè)文件的兩個(gè)名字,它們具有同樣的索引節(jié)點(diǎn)號和文件屬性,建

立文件file1的硬鏈接,就是為file1的文件索引節(jié)點(diǎn)在當(dāng)前目錄上建立一個(gè)新指針。如下圖,你可以刪除

其中任何一個(gè),如rm file2 ,每次只會刪除一個(gè)指針,

鏈接數(shù)同時(shí)減一,只有將所有指向文件內(nèi)容的指針,也即鏈接數(shù)減為0時(shí),內(nèi)核才會把文件內(nèi)容從磁盤上刪

除。

還可以在不同目錄,但同一文件系統(tǒng)中建立文件的硬鏈接。設(shè)file1、file2在目錄/home/longcheng/dir1

中,下面的命令,在/home/longcheng中建立file2的硬鏈接。

ln file2 /home/longcheng/file2hard

下面的程序,是將dir1目錄中所有文件,在目錄dir2中建立硬鏈接

$mkdir dir2
$ln /home/longcheng/dir1/* /home/longcheng/dir2

如果使用了 ln –f existingfile newfile,如果newfile已經(jīng)存在,則無論原來newfile是什么文件,只

用當(dāng)前用戶對它有寫權(quán)限,newfile就成為exisitngfile的硬鏈接文件。

盡管硬鏈接節(jié)省空間,也是Linux系統(tǒng)整合文件系統(tǒng)的傳統(tǒng)方式,但是存在一下不足之處:(1)不可以在

不同文件系統(tǒng)的文件間建立鏈接(2)只有超級用戶才可以為目錄創(chuàng)建硬鏈接。雖然很多樹上說root用戶

可以創(chuàng)建,但是筆者在學(xué)習(xí)過程中發(fā)現(xiàn)即使是root用戶也不能創(chuàng)建,我的系統(tǒng)是Redhat,內(nèi)核 2.4、2.6

都試過,在其他系統(tǒng)中不知道是不是可以。

二、軟鏈接(符號鏈接)

軟鏈接克服了硬鏈接的不足,沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向目錄的符號鏈接。因而現(xiàn)

在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機(jī)器、不同網(wǎng)絡(luò)對文件進(jìn)行鏈接。

建立軟鏈接,只要在ln后面加上選項(xiàng) –s,下面舉個(gè)例子

$ ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
$ln –s file1 file1soft
$ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1

從上面鏈接后的結(jié)果可以看出來軟鏈接與硬鏈接,區(qū)別不僅僅是在概念上,在實(shí)現(xiàn)上也是不同的。

區(qū)別:硬鏈接原文件&鏈接文件公用一個(gè)inode號,說明他們是同一個(gè)文件,而軟鏈接原文件&鏈接文件

擁有不同的inode號,表明他們是兩個(gè)不同的文件;在文件屬性上軟鏈接明確寫出了是鏈接文件,而硬鏈

接沒有寫出來,因?yàn)樵诒举|(zhì)上硬鏈接文件和原文件是完全平等關(guān)系;鏈接數(shù)目是不一樣的,軟鏈接的鏈接

數(shù)目不會增加;文件大小是不一樣的,硬鏈接文件顯示的大小是跟原文件是一樣的,這用強(qiáng)調(diào),因?yàn)槭堑?/p>

同的嘛,而這里軟鏈接顯示的大小與原文件就不同了,file1大小是48B,而file1soft是5B,這里面的5實(shí)

際上就是“file1”的大小。

總之,建立軟鏈接就是建立了一個(gè)新文件。當(dāng)訪問鏈接文件時(shí),系統(tǒng)就會發(fā)現(xiàn)他是個(gè)鏈接文件,它讀取鏈

接文件找到真正要訪問的文件。

在不同系統(tǒng)之間建立軟鏈接、對目錄建立鏈接,這里就不舉例了,讀者可以自己去嘗試,我也是在不斷實(shí)

踐中學(xué)習(xí)的。

當(dāng)然軟鏈接也有硬鏈接沒有的缺點(diǎn),因?yàn)殒溄游募性募穆窂叫畔?,所以?dāng)原文件從一個(gè)目錄下

移到其他目錄中,再訪問鏈接文件,系統(tǒng)就找不到了,而硬鏈接就沒有這個(gè)缺陷,你想怎么移就怎么移;

還有它要系統(tǒng)分配額外的空間用于建立新的索引節(jié)點(diǎn)和保存原文件的路徑。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产精品av在线观看| 欧美一级特黄特色大色大片| 殴美女美女大码性淫生活在线播放| 亚洲天堂有码中文字幕视频| 精品亚洲一区二区三区w竹菊| 欧美日韩高清不卡在线播放| 午夜精品一区免费视频| 98精品永久免费视频| 国产精品久久精品毛片| 99久久人妻中文字幕| 黄片在线免费观看全集| 色婷婷国产熟妇人妻露脸| 欧美区一区二在线播放| 污污黄黄的成年亚洲毛片| 老司机精品一区二区三区| 国产亚洲欧美日韩精品一区| 精品人妻一区二区四区| 亚洲中文字幕乱码亚洲| 欧美韩日在线观看一区| 日韩性生活视频免费在线观看 | 日本成人三级在线播放| 久久精视频免费视频观看| 国产麻豆成人精品区在线观看| 丝袜诱惑一区二区三区| 久久综合亚洲精品蜜桃| 黑色丝袜脚足国产一区二区| 小黄片大全欧美一区二区| 欧美一区二区三区喷汁尤物| 日韩精品视频高清在线观看| 日韩三级黄色大片免费观看| 麻豆视传媒短视频免费观看| 亚洲午夜av久久久精品| 日韩视频在线观看成人| 千仞雪下面好爽好紧好湿全文| 亚洲中文在线观看小视频| 熟妇人妻av中文字幕老熟妇| 在线观看视频日韩成人| 欧美国产日本免费不卡| 欧美一区二区三区性视频| 久久99精品国产麻豆婷婷洗澡| 日韩欧美一区二区不卡看片|