日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux技术理解,技术|理解 Linux 链接(二)

發(fā)布時間:2024/9/3 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux技术理解,技术|理解 Linux 链接(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們繼續(xù)這個系列,來看一些你所不知道的微妙之處。

在本系列的第一篇文章中,我們認識了硬鏈接、軟鏈接,知道在很多時候鏈接是非常有用的。鏈接看起來比較簡單,但是也有一些不易察覺的奇怪的地方需要注意。這就是我們這篇文章中要講的。例如,像一下我們在前一篇文章中創(chuàng)建的指向 libblah 的鏈接。請注意,我們是如何從目標文件夾中創(chuàng)建鏈接的。

cd /usr/local/lib

ln -s /usr/lib/libblah

這樣是可以工作的,但是下面的這個例子卻是不行的。

cd /usr/lib

ln -s libblah /usr/local/lib

也就是說,從原始文件夾內(nèi)到目標文件夾之間的鏈接將不起作用。

出現(xiàn)這種情況的原因是 ln 會把它當作是你在 /usr/local/lib 中創(chuàng)建一個到 /usr/local/lib 的鏈接,并在 /usr/local/lib 中創(chuàng)建了從 libblah 到 libblah 的一個鏈接。這是因為所有鏈接文件獲取的是文件的名稱(`libblah),而不是文件的路徑,最終的結(jié)果將會產(chǎn)生一個壞的鏈接。

然而,請看下面的這種情況。

cd /usr/lib

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

是可以工作的。奇怪的事情又來了,不管你在文件系統(tǒng)的任何位置執(zhí)行這個指令,它都可以好好的工作。使用絕對路徑,也就是說,指定整個完整的路徑,從根目錄(/)開始到需要的文件或者是文件夾,是最好的實現(xiàn)方式。

其它需要注意的事情是,只要 /usr/lib 和 /usr/local/lib 在一個分區(qū)上,做一個如下的硬鏈接:

cd /usr/lib

ln libblah /usr/local/lib

也是可以工作的,因為硬鏈接不依賴于指向文件系統(tǒng)內(nèi)的文件來工作。

如果硬鏈接不起作用,那么可能是你想跨分區(qū)之間建立一個硬鏈接。就比如說,你有分區(qū) A 上有文件 fileA ,并且把這個分區(qū)掛載到 /path/to/partitionA/directory 目錄,而你又想從 fileA 鏈接到分區(qū) B 上 /path/to/partitionB/directory 目錄,這樣是行不通的。

ln /path/to/partitionA/directory/file /path/to/partitionB/directory

正如我們之前說的一樣,硬鏈接是分區(qū)表中指向的是同一個分區(qū)的數(shù)據(jù)的條目,你不能把一個分區(qū)表的條目指向另一個分區(qū)上的數(shù)據(jù),這種情況下,你只能選擇創(chuàng)建一個軟鏈接:

ln -s /path/to/partitionA/directory/file /path/to/partitionB/directory

另一個軟鏈接能做到,而硬鏈接不能的是鏈接到一個目錄。

ln -s /path/to/some/directory /path/to/some/other/directory

這將在 /path/to/some/other/directory 中創(chuàng)建 /path/to/some/directory 的鏈接,沒有任何問題。

當你使用硬鏈接做同樣的事情的時候,會提示你一個錯誤,說不允許那么做。而不允許這么做的原因量會導致無休止的遞歸:如果你在目錄 A 中有一個目錄 B,然后你在目錄 B 中鏈接 A,就會出現(xiàn)同樣的情況,在目錄 A 中,目錄 A 包含了目錄 B,而在目錄 B 中又包含了 A,然后又包含了 B,等等無窮無盡。

當然你可以在遞歸中使用軟鏈接,但你為什么要那樣做呢?

我應該使用硬鏈接還是軟鏈接呢?

通常,你可以在任何地方使用軟鏈接做任何事情。實際上,在有些情況下你只能使用軟鏈接。話說回來,硬鏈接的效率要稍高一些:它們占用的磁盤空間更少,訪問速度更快。在大多數(shù)的機器上,你可以忽略這一點點的差異,因為:在磁盤空間越來越大,訪問速度越來越快的今天,空間和速度的差異可以忽略不計。不過,如果你是在一個有小存儲和低功耗的處理器上使用嵌入式系統(tǒng)上使用 Linux, 則可能需要考慮使用硬鏈接。

另一個使用硬鏈接的原因是硬鏈接不容易損壞。假設(shè)你有一個軟鏈接,而你意外的移動或者刪除了它指向的文件,那么你的軟鏈接將會損壞,并指向了一個不存在的東西。這種情況是不會發(fā)生在硬鏈接中的,因為硬鏈接直接指向的是磁盤上的數(shù)據(jù)。實際上,磁盤上的空間不會被標記為空閑,除非最后一個指向它的硬鏈接把它從文件系統(tǒng)中擦除掉。

軟鏈接,在另一方面比硬鏈接可以做更多的事情,而且可以指向任何東西,可以是文件或目錄。它也可以指向不在同一個分區(qū)上的文件和目錄。僅這兩個不同,我們就可以做出唯一的選擇了。

下期

現(xiàn)在我們已經(jīng)介紹了文件和目錄以及操作它們的工具,你是否已經(jīng)準備好轉(zhuǎn)到這些工具,可以瀏覽目錄層次結(jié)構(gòu),可以查找文件中的數(shù)據(jù),也可以檢查目錄。這就是我們下一期中要做的事情。下期見。

你可以通過 Linux 基金會和 edX “Linux 簡介”了解更多關(guān)于 Linux 的免費課程。

本文由 LCTT 原創(chuàng)編譯,Linux中國 榮譽推出

總結(jié)

以上是生活随笔為你收集整理的linux技术理解,技术|理解 Linux 链接(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。