真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么理解Linux的硬鏈接與軟鏈接

這篇“怎么理解Linux的硬鏈接與軟鏈接”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“怎么理解Linux的硬鏈接與軟鏈接”文章吧。

成都創(chuàng)新互聯(lián)從2013年開(kāi)始,先為和平等服務(wù)建站,和平等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為和平企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

硬鏈接

硬鏈接只是分區(qū)表中的一個(gè)條目,它指向磁盤(pán)上的某個(gè)區(qū)域,表示該區(qū)域已經(jīng)被分配給文件。換句話說(shuō),硬鏈接指向已經(jīng)被另一個(gè)條目索引的數(shù)據(jù)。讓我們看看它是如何工作的。

打開(kāi)終端,創(chuàng)建一個(gè)實(shí)驗(yàn)?zāi)夸洸⑦M(jìn)入:

mkdir test_dircd test_dir

使用 touch 創(chuàng)建一個(gè)文件:

touch test.txt

為了獲得更多的體驗(yàn)(?),在文本編輯器中打開(kāi) test.txt 并添加一些單詞。

現(xiàn)在通過(guò)執(zhí)行以下命令來(lái)建立硬鏈接:

ln test.txt hardlink_test.txt

運(yùn)行 ls,你會(huì)看到你的目錄現(xiàn)在包含兩個(gè)文件,或者看起來(lái)如此。正如你之前讀到的那樣,你真正看到的是完全相同的文件的兩個(gè)名稱: hardlink_test.txt 包含相同的內(nèi)容,沒(méi)有填充磁盤(pán)中的任何更多空間(可以嘗試使用大文件來(lái)測(cè)試),并與 test.txt 使用相同的 inode:

$ ls -li *test*16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 hardlink_test.txt16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 test.txt

ls-i 選項(xiàng)顯示一個(gè)文件的 “inode 數(shù)值”?!癷node” 是分區(qū)表中的信息塊,它包含磁盤(pán)上文件或目錄的位置、上次修改的時(shí)間以及其它數(shù)據(jù)。如果兩個(gè)文件使用相同的 inode,那么無(wú)論它們?cè)谀夸洏?shù)中的位置如何,它們?cè)趯?shí)際上都是相同的文件。

軟鏈接

軟鏈接,也稱為符號(hào)鏈接symlink,它與硬鏈接是不同的:軟鏈接實(shí)際上是一個(gè)獨(dú)立的文件,它有自己的 inode 和它自己在磁盤(pán)上的小塊地方。但它只包含一小段數(shù)據(jù),將操作系統(tǒng)指向另一個(gè)文件或目錄。

你可以使用 ln-s 選項(xiàng)來(lái)創(chuàng)建一個(gè)軟鏈接:

ln -s test.txt softlink_test.txt

這將在當(dāng)前目錄中創(chuàng)建軟鏈接 softlink_test.txt,它指向 test.txt。

再次執(zhí)行 ls -li,你可以看到兩種鏈接的不同之處:

$ ls -litotal 816515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 hardlink_test.txt16515855 lrwxrwxrwx 1 paul paul 8 oct 12 09:50 softlink_test.txt -> test.txt16515846 -rw-r--r-- 2 paul paul 14 oct 12 09:50 test.txt

hardlink_test.txttest.txt 包含一些文本并且字面上占據(jù)相同的空間。它們使用相同的 inode 數(shù)值。與此同時(shí),softlink_test.txt 占用少得多,并且具有不同的 inode 數(shù)值,將其標(biāo)記為完全不同的文件。使用 ls-l 選項(xiàng)還會(huì)顯示軟鏈接指向的文件或目錄。

為什么要用鏈接?

它們適用于帶有自己環(huán)境的應(yīng)用程序。你的 Linux 發(fā)行版通常不會(huì)附帶你需要應(yīng)用程序的***版本。以優(yōu)秀的 Blender 3D 設(shè)計(jì)軟件為例,Blender 允許你創(chuàng)建 3D 靜態(tài)圖像以及動(dòng)畫(huà)電影,人人都想在自己的機(jī)器上擁有它。問(wèn)題是,當(dāng)前版本的 Blender 至少比任何發(fā)行版中的自帶的高一個(gè)版本。

幸運(yùn)的是,Blender 提供可以開(kāi)箱即用的下載。除了程序本身之外,這些軟件包還包含了 Blender 需要運(yùn)行的復(fù)雜的庫(kù)和依賴框架。所有這些數(shù)據(jù)和塊都在它們自己的目錄層次中。

每次你想運(yùn)行 Blender,你都可以 cd 到你下載它的文件夾并運(yùn)行:

./blender

但這很不方便。如果你可以從文件系統(tǒng)的任何地方,比如桌面命令啟動(dòng)器中運(yùn)行 blender 命令會(huì)更好。

這樣做的方法是將 blender 可執(zhí)行文件鏈接到 bin/ 目錄。在許多系統(tǒng)上,你可以通過(guò)將其鏈接到文件系統(tǒng)中的任何位置來(lái)使 blender 命令可用,就像這樣。

ln -s /path/to/blender_directory/blender /home//bin

你需要鏈接的另一個(gè)情況是軟件需要過(guò)時(shí)的庫(kù)。如果你用 ls -l 列出你的 /usr/lib 目錄,你會(huì)看到許多軟鏈接文件一閃而過(guò)。仔細(xì)看看,你會(huì)看到軟鏈接通常與它們鏈接到的原始文件具有相似的名稱。你可能會(huì)看到 libblah 鏈接到 libblah.so.2,你甚至可能會(huì)注意到 libblah.so.2 相應(yīng)鏈接到原始文件 libblah.so.2.1.0。

這是因?yàn)閼?yīng)用程序通常需要安裝比已安裝版本更老的庫(kù)。問(wèn)題是,即使新版本仍然與舊版本(通常是)兼容,如果程序找不到它正在尋找的版本,程序?qū)?huì)出現(xiàn)問(wèn)題。為了解決這個(gè)問(wèn)題,發(fā)行版通常會(huì)創(chuàng)建鏈接,以便挑剔的應(yīng)用程序相信它找到了舊版本,實(shí)際上它只找到了一個(gè)鏈接并最終使用了更新的庫(kù)版本。

有些是和你自己從源代碼編譯的程序相關(guān)。你自己編譯的程序通常最終安裝在 /usr/local 下,程序本身最終在 /usr/local/bin 中,它在 /usr/local/bin 目錄中查找它需要的庫(kù)。但假設(shè)你的新程序需要 libblah,但 libblah/usr/lib 中,這就是所有其它程序都會(huì)尋找到它的地方。你可以通過(guò)執(zhí)行以下操作將其鏈接到 /usr/local/lib

ln -s /usr/lib/libblah /usr/local/lib

或者如果你愿意,可以 cd/usr/local/lib

cd /usr/local/lib

然后使用鏈接:

ln -s ../lib/libblah

以上就是關(guān)于“怎么理解Linux的硬鏈接與軟鏈接”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)頁(yè)名稱:怎么理解Linux的硬鏈接與軟鏈接
鏈接URL:http://weahome.cn/article/igidcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部