1. 程式人生 > >什麼是linux下的符號連結檔案

什麼是linux下的符號連結檔案

連結有兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link,也叫做軟連結)。預設情況下,ln命令產生硬連結。

(一)硬連結

1.產生硬連結的語法

# ln 原始檔 目標檔案  (注意:不能為目錄建立硬連結)

2.關於inode

inode 譯成中文就是索引節點。每個儲存裝置或儲存裝置的分割槽(儲存裝置是硬碟、軟盤、U盤 ... ... )被格式化為檔案系統後,應該有兩部份,一部份是inode,另一部份是Block,Block是用來儲存資料用的。而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫許可權等。inode為每個檔案進行資訊索引,所以就有了inode的數值。作業系統根據指令,能通過inode值最快的找到相對應的檔案。

硬連線指通過索引節點來進行的連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和其它的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案才會被真正刪除。

3.inode相同的檔案是硬連結檔案

 在Linux 檔案系統中,inode值相同的檔案是硬連結檔案,也就是說,不同的檔名,inode可能是相同的,一個inode值可以對應多個檔案。

 inode值相同的檔案,他們的關係是互為硬連結的關係。當我們修改其中一個檔案的內容時,互為硬連結的檔案的內容也會跟著變化。如果我們刪除互為硬連結關係的某個檔案時,其它的檔案並不受影響。

(二)軟連結(符號連結)

與硬連線相對應,Lnux系統中還存在另一種連線,稱為符號連線(Symbilc Link),也叫軟連線。軟連結檔案有點類似於Windows的快捷方式。它實際上是特殊檔案的一種。在符號連線中,檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。

1.產生軟連結的語法

     # ln -s 原始檔或目錄 目標檔案或目錄

   2.關於軟連結

    軟連結也叫符號連結,它和硬連結有所不同,軟連結檔案只是其原始檔的一個標記。當我們刪除了原始檔後,連結檔案不能獨立存在,雖然仍保留檔名,但我們卻不能檢視軟連結檔案的內容了。

    值得我們注意的是:當我們修改連結檔案的內容時,就意味著我們在修改原始檔的內容。當然原始檔的屬性也會發生改變,連結檔案的屬性並不會發生變化。當我們把原始檔刪除後,連結檔案只存在一個檔名,因為失去了原始檔,所以軟連結檔案也就不存在了。這一點和硬連結是不同的;

   (三)示例

touch f1(建立一個f1的檔案)

ln f1 f2 創佳一個f2的硬連線

ln -s f1 f3 建立一個f3的軟連線

此時如果刪除f3,對f1,f2無影響;如果刪除f2,對f1,f3也無影響,如果刪除f1,那麼因為f2也應用f1,所以並不影響f2節點的,touch 建立的檔案仍然存在;但是此時f3因為是軟連線,導致f3失效。如果刪除f1,f2 ,那麼touch 創佳的檔案會被刪除

相關推薦

linux 連結檔案詳解

轉載來自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml 轉載來自:(這個哥們加工了的,各種顏色,美化)http://www.cnblogs.com/li-hao/p/4107964.html

linux符號連結檔案

連結有兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link,也叫做軟連結)。預設情況下,ln命令產生硬連結。 (一)硬連結 1.產生硬連結的語法 ln 原始檔 目標檔案 (注意:不能為目錄建立硬連結) 2.

什麼是linux符號連結檔案

連結有兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link,也叫做軟連結)。預設情況下,ln命令產生硬連結。 (一)硬連結 1.產生硬連結的語法 # ln 原始檔 目標檔案  (注意:不能為目錄建立硬連結) 2.關於inode i

linux檢視目標檔案.a中函式符號名稱

問:拿到一個.a庫,如何檢視其中包含哪些函式? 答:使用 nm xx.a 命令 nm xx.a 如果輸出較多,可重定向輸出至文字檔案中 nm xx.a > xx.txt 幾個問題: (1).a到底是個什麼? .a其實是把編譯生成的.o檔案,打包

linux將.a檔案連結到.so檔案的問題

比如在連結lib123.a庫生成libabc.so庫時經常會遇到這個問題,當連結libabc.so時出現以下錯誤: libabc.so: undefined reference to `XXX’ 在readelf -s lib123.a | grep “XXX”時,顯示 165: 000000000

Ubuntu stat 獲取符號連結檔案有 bug

今天根據stat這個函式寫了ls -l的功能,測試時發現符號連結檔案 l 不能被正確識別。 我建立了一個符號連結檔案 10,指向普通檔案1.c stat 這個函式無法獲取符號連結檔案的屬性,他獲

Linux安裝.run檔案

Welcome To My Blog 實踐中學習Linux,今天安裝福昕PDF閱讀器,順便推薦下,很好用,可以任意勾勾畫畫。 官網下載安裝包FoxitReader2.4.1.0609_Server_x64_enu_Setup.run.tar.gz 1. 解壓 tar -zxvf

linux解壓縮檔案中文亂碼問題的解決

在windows上壓縮的檔案,是以系統預設編碼中文來壓縮檔案。由於zip檔案中沒有宣告其編碼,所以linux上的unzip一般以預設編碼解壓,中文檔名會出現亂碼。 雖然2005年就有人把這報告為bug, 但是info-zip的官方網站沒有把自動識別編碼列入計劃,可能他們不認為這是個問題。Sun對java中存在

Linux的二進位制檔案比較工具

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux檢視隱藏檔案命令

一般的Linux下的隱藏目錄使用命令ls -l是查看不出來的,只能檢視到檔案及資料夾 檢視Linux下的隱藏檔案需要用到命令 ls -al 其他檢視檔案目錄命令: ls -l ll ls -l / 個人網站:http://xudailong.

java上傳檔案linux 的 tomcat 檔案伺服器

linux 安裝 tomcat 伺服器,我安裝的是 tomcat 7,未測試其他版本 linux 安裝 tomcat 連線 https://mp.csdn.net/mdeditor/83987640# 本次使用的阿里雲 linux os7 , tomcat 7 + ssm 1、修改目

Linux幾種檔案傳輸命令

  Linux下幾種檔案傳輸命令 sz rz sftp scp     最近在部署系統時接觸了一些檔案傳輸命令,分別做一下簡單記錄: 1.sftp Secure Ftp 是一個基於SSH安全協議的檔案傳輸管理工具。由於它是基於SSH的,會在

linux將pdf檔案轉換成swf檔案

用PHP用到了線上瀏覽pdf檔案的功能,js播放外掛需要同時將pdf檔案轉換成swf檔案兩者兼用才能達到效果。 安裝swftools 中文支援安裝: mkdir –p /usr/share/xpdf cd /usr/share/xpdf/ 下載中文支援及字型庫 wget ftp:/

Linux學習筆記 三 linux連結庫以及實現

1、連結庫概述 Linux下得庫有動態與靜態兩種,動態通常用.so為字尾,靜態用.a為字尾。面對比一下兩者:     靜態連結庫:當要使用時,聯結器會找出程式所需的函式,然後將它們拷貝到執行檔案,由於這種拷貝是完整的,所以一旦連線成功,靜態程式庫也就不再需要了。

linux 除錯coredump檔案

1、coredump簡介 在linux後臺開發過程中可能一不小心出現訪問非法記憶體而產生段錯誤,面對段錯誤我們有時候可以通過列印定位,但那樣比較慢,我們可以利用linux提供了一種方法,當程式奔潰時核心會儲存程式執行的堆疊資訊到一個coredump檔案,我們可以通過gdb除錯這個coredump

Linux學習筆記-Linux的裝置檔案

在Linux下,有一種檔案的型別叫裝置檔案。 在/dev目錄下的檔案基本上都是裝置檔案,檔案屬性以c或b打頭(charactor, block)   裝置檔案用於代表一個物理裝置 例如,音效卡、顯示卡、鍵盤、滑鼠、攝像頭、印表機、掃描器。  

Linux學習筆記-Linux讀寫檔案

在Linux程式設計需要讀寫檔案時,有兩種方式: (1)ANSIC: 使用stdio.h裡的函式。fopen, fclose, fwrite, fread (2)Linux API:Linux提供了另外一套API用於操作檔案。open, clos

linux怎樣編輯檔案儲存檔案

Linux下如何用vi編輯和儲存檔案 vi是Linux終端下或控制檯下常用的編輯器,基本的操作方式為:vi /路徑/檔名 這個時候如果想修改這個檔案的內容,按下間鍵盤上的'i'鍵,最下方就會變成INSERT,就可以修改了   例如,vi /etc/fstab表

Linuxselect函式檔案描述符0狀態的問題

當然是在有輸入或者輸出時檔案描述符的讀寫狀態改變咯,比如標準輸入的檔案描述符是0,如果用select來等待0號檔案描述符,那麼當在鍵盤上敲字元時開始,就是檔案描述符的讀寫狀態改變之時,這時select函式就會返回;對於套接字描述符來說也是這樣,用select來等待一個伺服器描

linux執行連結串列棧(實現棧的基本功能 push,pop,刪除任意結點,遍歷輸出等)

一、簡要敘述設計思想和技術路線(不少於300字)(20分)。 設計思想:利用Linux GNU make C 專案管理軟體工具實現資料結構棧(Stack)。實現Push,Pop,Delete,Search,Visit through,Clear功能。節點的資料設計具有一般性(使用void *da