基于SAIL-IMX6理解Linux鏈接-創(chuàng)新互聯(lián)

鏈接是可以將文件和目錄放在你希望它們放在的位置的另一種方式。

創(chuàng)新互聯(lián)公司為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站, 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。

除了 cp 和 mv 這兩個(gè)我們?cè)诒鞠盗械那耙徊糠种性敿?xì)討論過(guò)的,鏈接是可以將文件和目錄放在你希望它們放在的位置的另一種方式。它的優(yōu)點(diǎn)是可以讓你同時(shí)在多個(gè)位置顯示一個(gè)文件或目錄。

如前所述,在物理磁盤(pán)這個(gè)級(jí)別上,文件和目錄之類的東西并不真正存在。文件系統(tǒng)是為了方便人類使用,將它們虛構(gòu)出來(lái)。但在磁盤(pán)級(jí)別上,有一個(gè)名為分區(qū)表partition table的東西,它位于每個(gè)分區(qū)的開(kāi)頭,然后數(shù)據(jù)分散在磁盤(pán)的其余部分。

雖然有不同類型的分區(qū)表,但是在分區(qū)開(kāi)頭的那個(gè)表包含的數(shù)據(jù)將映射每個(gè)目錄和文件的開(kāi)始和結(jié)束位置。分區(qū)表的就像一個(gè)索引:當(dāng)從磁盤(pán)加載文件時(shí),操作系統(tǒng)會(huì)查找表中的條目,分區(qū)表會(huì)告訴文件在磁盤(pán)上的起始位置和結(jié)束位置。然后磁盤(pán)頭移動(dòng)到起點(diǎn),讀取數(shù)據(jù),直到它到達(dá)終點(diǎn),您看:這就是你的文件。

(1)硬鏈接:

硬鏈接只是分區(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_dir

cd 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 1209:50 hardlink_test.txt

16515846 -rw-r--r-- 2 paul paul 14 oct 1209:50 test.txt

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

(2)軟鏈接:

軟鏈接,也稱為符號(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 -li

total 8

16515846 -rw-r--r-- 2 paul paul 14 oct 1209:50 hardlink_test.txt

16515855 lrwxrwxrwx 1 paul paul 8 oct 1209:50 softlink_test.txt -> test.txt

16515846 -rw-r--r-- 2 paul paul 14 oct 1209:50 test.txt

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

(3)為什么要用鏈接?

它們適用于帶有自己環(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

還有幾十個(gè)案例證明軟鏈接是有用的,當(dāng)你使用 Linux 更熟練時(shí),你肯定會(huì)發(fā)現(xiàn)它們,但這些是最常見(jiàn)的。下一次,我們將看一些你需要注意的鏈接怪異。

通過(guò) Linux 基金會(huì)和 edX 的免費(fèi) “Linux 簡(jiǎn)介”課程了解有關(guān)Linux 的更多信息。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:基于SAIL-IMX6理解Linux鏈接-創(chuàng)新互聯(lián)
本文URL:http://bm7419.com/article28/djhccp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化品牌網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化