1. 程式人生 > >【Linux入門學習之】Linux連線檔案:硬連線和軟連線

【Linux入門學習之】Linux連線檔案:硬連線和軟連線

Linux下面的連線檔案有2種:一種是類似與Windows的快捷方式功能的檔案,可以讓我們快速連線到目標檔案,稱為符號連線(symbolic link);另一種則是通過檔案系統的inode連線產生新檔名,而不是產生新檔案,稱為硬連線(hard link)。

一、hard link(硬連線或實際連線)

在linux檔案系統中,每個檔案都會佔用一個inode,檔案內容由inode的記錄來指向(block)。想要讀取該檔案,必須要通過目錄記錄的檔名來指向正確的inode號碼才能讀取。也即:檔名只與目錄有關,檔案內容與inode有關。hard link就是有多個檔名對應到同一個inode號碼,它只是在某個目錄下面新建一條檔名連線到某inode號碼的關聯記錄而已。

實際連線的檔案讀取示意圖如下:


根據上圖,我們可以通過1或2的目錄inode指定的block找到兩個不同的檔名,而不管使用哪個檔名都可以指到real那個inode去讀取到最終的資料。這樣做的最大的好處就是安全。如果使用者將任何一個檔名刪除,其實inode和block都還是存在的。此時可以通過另一個“檔名”來讀取到正確的檔案資料。此外,不論使用那個檔名來編輯都可以將結果寫入到相同的inode和block中。

一般來說,使用hard link設定連線檔案時,磁碟的空間與inode數目都不會改變。它只是在某個目錄下的block多寫入一個關聯資料而已。特殊情況就是,將要新增這條資料到某個block時它剛好滿了,這樣會導致磁碟空間的變化。不過,一般hard link用掉的關聯資料都很小,所以通常不會改變inode與磁碟空間的大小。

注意:hard link僅能在單一檔案系統裡進行。

而且:不可以連線到目錄。因為連線到目錄的時候,連線的資料需要連同被連線的目錄下面的所有資料都建立連線。

二、symbolic link(符號連線,即快捷方式)

它也叫軟連線,是建立一個獨立的檔案,而這個檔案會讓資料的讀取指向它連線的那個檔案的檔名。當原始檔被刪除之後,symbolic link會打開不了。

符號連線檔案讀取示意圖如下:


由1號inode讀取到連線檔案的內容僅有檔名,根據檔名連線到正確的目錄去取得目標檔案的inode。最終讀取到正確的資料。

symbolic link會佔用inode和block。

需要注意的是,改動symbolic link檔案時,其實改動的就是原始檔。

軟連線可以跨檔案系統,也可以和目錄連線。

例項:

分別建立檔案linktest的硬連線link1和軟連線link2.ln命令不加任何引數時,預設建立硬連線。

可以看出,硬連線檔案和原始檔的屬性完全相同,包括inode號碼。

下面刪除原始檔,發現硬連線仍然可以讀取,而軟連線不能讀取。

相關推薦

Linux入門學習Linux連線檔案連線連線

Linux下面的連線檔案有2種:一種是類似與Windows的快捷方式功能的檔案,可以讓我們快速連線到目標檔案,稱為符號連線(symbolic link);另一種則是通過檔案系統的inode連線產生新檔名,而不是產生新檔案,稱為硬連線(hard link)。 一、hard l

Linux入門學習Linux關機命令總結

Linux關機應該採用正確的關機方法。 Windows由於是單使用者、“假多”任務的情況,所以即使你的計算機關機,也不會對別人造成影響。不過在Linux中,由於每個程式都是在後臺執行的,因此,在你看不到的螢幕背後可能有很多人同時在你的主機上工作。而且,若不正常關機可能會造

Linux入門學習Ubuntu常用軟體 速配指南軟體參考

速配指南之軟體參考 本文定位:作為速配指南的補充,列出國內使用者比較常用的軟體。請將論壇軟體推薦版塊的內容逐步轉移至wiki,而非本文。 本文作用:為新手指明軟體的方向,也可供已入門的同仁參考。 注意事項: 本文及文中涉及到的詞條亟待你的完善。編輯本文前請訪問本文

安全牛學習筆記Linux緩沖區溢出

信息安全;security+;Linux緩沖區溢出FUZZING Crossfire 1.9.0版本接受入展socket連接時攢在緩沖區溢出漏洞 調試工具 edb運行平臺Kali i486虛擬機 [email protected]:~

嵌入式Linux驅動學習USART串列埠控制基於AT91SAM9261EK

    普通微控制器的串列埠操作比較容易,但是基於Linux系統的串列埠操作難不難呢?其實,基於Linux作業系統的串列埠操作分為兩個部分:串列埠驅動部分(底層驅動與設備註冊)與串列埠的應用程式(使用者程式)。一般廠家或是Linux核心已經提供了基於開發板的串列埠驅動,只需

安全牛學習筆記SSL、TLS拒絕服務攻擊補充概念

security+ 信息安全 SSL/TLS拒絕服務攻擊 thc-ssl-doc SSL協商加密對性能開銷增加,大量握手請求

安全牛學習筆記SSH遠程端口轉發動態端口轉發以及X協議轉發

security+ 信息安全 SSH遠程端口轉發 由於ACL等原因,SSH與應用連接建立方向相反 本地端口轉發 - SSH客戶端+應用客戶端位於FW一端 - SSH服務器+應用服

Linux連結連線的區別以及建立

硬連結:已存在的檔案的一個別名,當原始檔刪除時仍可使用,且inode可共享,僅檔名不同的檔案,硬連結的建立會使連結數加1。 軟連線:符號連結,也就是快捷方式,不共享inode,有自己的inode,可對不存在的檔案建立軟連結,建立時連結數不加一,當原始檔刪除時,則

Linux系統的連結連線

一. 硬連結 硬連結是為檔案開設一個新的目錄項,可以看做是為原檔案的備份。硬連結與檔案原有的名字是平權的,在Linux看來它們是等價的。由於這個原因,硬連結不能連線兩個不同檔案系統上的檔案。 硬連線不管有多少個,都指向的是同一個I節點,會把 結點連線數增加,只要

Shell指令碼學習8Shell特殊變數Shell $0, $#, $*, [email protected],

前面已經講到,變數名只能包含數字、字母和下劃線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。 例如,$ 表示當前Shell程序的ID,即pid,看下面的程式碼: $echo $$ 執行結果 29949 特殊變數列表 變數

西瓜書學習筆記第3章線性模型

課程前言: arg max的引數是函式最大化的某個函式的域的點,與全域性最大值相比引數函式的最大輸出,arg max指的是函式輸出儘可能大的輸入或引數 閉式解: 給出任意自變數,就可以求出因變數 最小二乘法: 通過最小化誤差的平方和尋找資料的最佳函式匹配

Linux連結連線的理解

    為了解決資訊能獨立於程序之外長期被儲存引入了檔案,檔案能同時被多個程序使用。對於所有類Unix系統,除了程序以外全都為檔案,而Linux在此基礎上引進了目錄的概念即資料夾,這就使得Linux的檔案可以被分類管理,同時是的Linux的檔案系統形成一個層級結構的目錄樹。 

tensorflow入門教程二資料集製作使用TFRecords製作資料集並使用inceptionv3進行訓練

這篇文章中,我們將探討深度學習中最基本的問題,影象分類中的資料集以及標籤的製作;以及使用Inceptionv3網路對其進行訓練。PS:文末附博文配套程式碼以及資料集原圖的下載。先上一張最後的訓練結果圖:17flowers資料集17flowers資料集包含有17種不同的花的圖片

Linux下的連結連線

      首先要弄清楚,在Linux系統中,核心為每一個新建立的檔案分配一個Inode(索引結點),每個檔案都有一個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複制到記憶體在,從而實現檔案的快速訪問。   連結是一種在共享檔案和訪問它的使用者的

快速入門 C++ STL demo 演示九二元謂詞,二元函式物件,函式介面卡

#include<vector> #include<iostream> #include<algorithm> #include<functional> using namespace std; template <typ

java學習代理(2)靜態代理動態代理

一,代理的概念 代理是一個物件,代理物件為其他物件提供一種代理,以控制對這個物件的訪問,代理物件起到中介作用,可以去掉或者增加額外的服務。 如:火車票代售點就是火車站售票處的一個代理物件,可通過訪問代售點進行業務處理。 二,靜態代理的2種實現方式:繼承和聚合 靜態代理中的代

Linux學習路-Linux-hostname修改11---20171226

ria ica hosts work conf name mar domain 使用 1、centos7修改hostname[root@centos7 ~]$ hostnamectl set-hostname Centos7.L # 使用這個命令會立即

Linux學習路-Linux自動化系統安裝12---20171230

repos exec auth bdc u盤啟動 eth 本地 ner 微型linux 安裝程序 CentOS系統安裝 系統啟動流程:bootloader-->kernel(initramfs)-->rootfs-->/sbin/initanaco

Linux學習路-Linux-DHCP設置及PXE13---20180101

tla x86 rect gte vml 實現 安全性 itl pass 一、DHCP服務 DHCP(動態主機配置協議)是一種協議,它允許IP網絡上的各個設備從DHCP服務器獲取自己的網絡配置信息(IP地址,子網掩碼,廣播地址等)。 DHCP的總體目的是使管理

安全牛學習筆記Kali Linux 安裝-持久加密USB安裝、熟悉環境、熟悉BASH命令

security+ linux 信息安全 持久加密USB安裝-1LUKS: linux UNified Key Setup 磁盤分區加密規範 不依賴於操作系統的磁盤級加密 Windows——DoxBox 後端:dm-crypt 前端:cryptsetup 微軟的bitlocker將鏡像