Linux 軟硬鏈接

目錄

軟硬鏈接

軟鏈接

硬鏈接

軟硬鏈接的區別

硬鏈接場景

軟連接場景


軟硬鏈接

軟鏈接

我們可以通過以下命令創建一個文件的軟連接

ln -s mytest softlink-mytest

通過 ls -i -l 命令我們可以看到,軟鏈接文件的inode號與源文件的inode號是不同的,并且軟鏈接文件的大小比源文件的大小要小得多

軟連接又叫符號鏈接,軟鏈接文件相對于源文件來說是一個獨立的文件,該文件有自己的inode編號,但是該文件只包含了源文件的路徑名,所以軟連接文件相比于源文件要小很多。軟連接就相當于Windows操作系統當中的快捷方式

軟鏈接文件只是其源文件的一個標記,當刪除了源文件后,鏈接文件不能獨立存在,雖然仍保留文件名,但卻不能執行或是查看軟鏈接的內容了

硬鏈接

我們可以通過以下命令創建一個文件的硬鏈接

ln mytest hardlink-mytest

通過 ls -i -l 命令我們可以看到,硬鏈接文件的inode編號和源文件是相同的,并且硬鏈接文件大小與源文件大小也是相同的,特別注意的是,當創建了一個硬鏈接文件后,該硬鏈接文件和源文件的硬鏈接數(引用計數)都變成了2

硬鏈接文件就是源文件的一個別名,一個文件有幾個文件名,該文件的硬鏈接數就是多少,這里inode號為412561的文件有mytest和hardlink-mytest兩個文件名,因此該文件的硬鏈接數為2

硬鏈接數

任意一個文件,無論目錄還是普通文件,都有inode,每一個inode內部,都有一個叫做引用計數得計數器

目錄中保存的是文件名:inode編號的映射關系

例如:

文件1:inode 1234

文件2:inode 1234

文件3:inode 1234

文件4:inode 1234

不同文件可以映射同一個inode編號,這里使用的引用計數

這樣的映射關系很像 “指針”

與軟連接不同的是,當硬鏈接的源文件被刪除,硬鏈接文件依舊能正常執行,只是文件的硬鏈接數減少了一個,因為此時該文件的文件名少了一個,所謂的建立硬鏈接,本質就是在特定目錄的數據塊中新增文件名和指向文件名的inode編號的映射關系

硬鏈接就是讓多個不在或者同在一個目錄下的文件名,同時能夠修改同一個文件,其中一個修改后,所有與其有硬鏈接的文件都一起修改了

tips: 刪除軟硬鏈接,我們使用unlink + 軟硬鏈接文件

為什么剛剛創建的目錄的硬鏈接數是2?

我們創建一個普通文件,該普通文件的硬鏈接數是1,因為此時該文件至于一個文件名。

為什么我們創建一個目錄之后,該目錄的硬鏈接數為2?

因為每個目錄創建后,該目錄默認會有兩個隱含文件?. .. ,它們分別代表當前目錄和上一級目錄,因此這里創建的目錄有兩個名字一個dir另一個就是該目錄下的 . ,所以剛創建的目錄的硬鏈接數是2,通過命令我們也可以看到dir和該目錄下的 . 的inode編號是一樣的,也就可以說明它們代表的實際上是同一個文件

tips:該目錄下有效目錄的個數等于該目錄的硬鏈接數減2

軟硬鏈接的區別

1. 軟連接是一個獨立的文件,有獨立的inode,而硬鏈接沒有獨立的inode

2. 軟鏈接相等于快捷方式,硬鏈接本質沒有創建文件,只是建立了一個文件名和已有的inode的映射關系,并寫入當前目錄的數塊

硬鏈接場景

硬鏈接用來維護整個目錄結構,路徑定位采用硬鏈接,可以進行目錄間切換

注意:不允許目錄進行硬鏈接,但是可以進行軟鏈接

如果對目錄采用硬鏈接可能會產生環路問題,操作系統是不允許的

難道? . .. 不是硬鏈接?,它是操作系統設置好的進行搜索時不能使用

軟連接場景

例如:我創建了一個項目,但是指向文件藏得很深,這樣給用戶使用就很不方便,所以這時我們就可以創建一個軟連接給用戶

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71556.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71556.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

不同開發語言之for循環的用法、區別總結

一、Objective-C &#xff08;1&#xff09;標準的c風格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循環。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …

計算機畢設-基于springboot的物業管理系統的設計與實現(附源碼+lw+ppt+開題報告)

博主介紹&#xff1a;?多個項目實戰經驗、多個大型網購商城開發經驗、在某機構指導學員上千名、專注于本行業領域? 技術范圍&#xff1a;Java實戰項目、Python實戰項目、微信小程序/安卓實戰項目、爬蟲大數據實戰項目、Nodejs實戰項目、PHP實戰項目、.NET實戰項目、Golang實戰…

景聯文科技:以精準數據標注賦能AI進化,構筑智能時代數據基石

在人工智能技術席卷全球的浪潮中&#xff0c;高質量數據已成為驅動AI模型進化的核心燃料。作為全球領先的AI數據服務解決方案提供商&#xff0c;景聯文科技深耕數據標注領域多年&#xff0c;以技術為基、以專業為本&#xff0c;致力于為全球客戶提供全場景、高精度、多模態的數…

批量合并 Word 文檔,支持合并成一個 Word,也支持按文件夾合并

我們經常會碰到需要將多個 Word 文檔批量合并成一個 Word 文檔的場景&#xff0c;比如需要合并后打印、合并后方便整理存檔等等。如果是人工的操作&#xff0c;會非常的麻煩。因此我們通常會借助一些批量處理腳本或者尋找批量處理的工具來幫我們實現批量合并 Word 文檔的操作。…

數據安全基石:備份文件的重要性與自動化實踐

在數字化時代&#xff0c;數據已成為企業和個人不可或缺的重要資產。無論是企業的運營數據、客戶資料&#xff0c;還是個人的學習資料、家庭照片&#xff0c;這些數據都承載著巨大的價值。然而&#xff0c;數據的安全問題也日益凸顯&#xff0c;硬件故障、軟件錯誤、人為失誤以…

用IdleHandler來性能優化及原理源碼分析

背景&#xff1a; 經常在做一些app冷啟動速度優化等性能優化工作時候&#xff0c;經常可能會發現有時候需要引入一些第三方sdk&#xff0c;或者庫&#xff0c;這些庫一般會要求我們在onCreate中進行初始化等&#xff0c;但是onCreate屬于生命周期的回調方法&#xff0c;如果on…

SyntaxError: Invalid or unexpected token in JSON at position x

&#x1f90d; 前端開發工程師、技術日更博主、已過CET6 &#x1f368; 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 &#x1f560; 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 &#x1f35a; 藍橋云課簽約作者、…

04.基于C++實現多線程TCP服務器與客戶端通信

基于C實現多線程TCP服務器與客戶端通信 目錄 一、項目背景與目標二、從零開始理解網絡通信三、相關技術背景知識 1. 守護進程(Daemon Process)2. 線程池(Thread Pool)3. RAII設計模式 四、項目整體結構與邏輯五、核心模塊詳細分析 1. TCP服務器模塊2. 線程池模塊3. 任務處理模…

從0到1入門Linux

一、常用命令 ls 列出目錄內容 cd切換目錄mkdir創建新目錄rm刪除文件或目錄cp復制文件或目錄mv移動或重命名文件和目錄cat查看文件內容grep在文件中查找指定字符串ps查看當前進程狀態top查看內存kill終止進程df -h查看磁盤空間存儲情況iotop -o直接查看比較高的磁盤讀寫程序up…

Nginx負載均衡配置詳解:輕松實現高可用與高性能

在現代Web應用中&#xff0c;負載均衡是確保系統高可用性和高性能的關鍵技術之一。Nginx作為一款高性能的HTTP服務器和反向代理服務器&#xff0c;其負載均衡功能被廣泛應用于各種場景。本文將詳細介紹如何使用Nginx實現負載均衡配置&#xff0c;幫助開發者輕松應對高并發和大流…

使用chroot預安裝軟件到ubuntu22中

1、安裝依賴 # 安裝依賴工具 sudo apt update && sudo apt install -y \ squashfs-tools \ genisoimage \ xorriso \ isolinux \ syslinux-utils \ p7zip-full sudo apt update sudo apt install grub-pc-bin grub-efi-amd64-bin -y # 創建工作目錄 mkdir -p ./custom-…

php代碼審計工具-rips

代碼審計 代碼審計就是檢查所寫的代碼中是否有漏洞&#xff0c;檢查程序的源代碼是否有權限從而被黑客攻擊&#xff0c;同時也檢查了書寫的代碼是否規范。通過自動化的審查和人工審查的方式&#xff0c;逐行檢查源代碼&#xff0c;發現源代碼中安全缺陷所造成的漏洞&#xff0…

Docker參數,以及倉庫搭建

一。Docker的構建參數 注釋&#xff1a; 1.對于CMD&#xff0c;如果不想顯示&#xff0c;而是使用交互界面&#xff1a;docker run -ti --rm --name test2 busybox:v5 sh 2.對于CMD&#xff0c;一個交互界面只可以使用一個&#xff0c;如果想多次使用CMD&#xff0c;則用ENTR…

基于Python Django的人臉識別上課考勤系統(附源碼,部署)

博主介紹&#xff1a;?程序員徐師兄、7年大廠程序員經歷。全網粉絲12w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;…

基于python實現的疫情數據可視化分析系統

基于python實現的疫情數據可視化分析系統 開發語言:Python 數據庫&#xff1a;MySQL所用到的知識&#xff1a;Django框架工具&#xff1a;pycharm、Navicat 系統功能實現 總體設計 系統實現 系統功能模塊 系統首頁可以查看首頁、疫情信息、核酸檢測、新聞資訊、個人中心、后…

(十 八)趣學設計模式 之 觀察者模式!

目錄 一、 啥是觀察者模式&#xff1f;二、 為什么要用觀察者模式&#xff1f;三、 觀察者模式的實現方式四、 觀察者模式的優缺點五、 觀察者模式的應用場景六、 總結 &#x1f31f;我的其他文章也講解的比較有趣&#x1f601;&#xff0c;如果喜歡博主的講解方式&#xff0c;…

Spring Boot 緩存最佳實踐:從基礎到生產的完整指南

Spring Boot 緩存最佳實踐&#xff1a;從基礎到生產的完整指南 引言 在現代分布式系統中&#xff0c;緩存是提升系統性能的銀彈。Spring Boot 通過 spring-boot-starter-cache? 模塊提供了開箱即用的緩存抽象&#xff0c;但如何根據業務需求實現靈活、可靠的緩存方案&#xf…

蘋果Siri升級遇阻,國行iPhone或將引入阿里、百度AI自救

AI整合進展緩慢 蘋果正加速將生成式AI技術整合至Siri&#xff0c;但內部消息稱其底層技術研發落后于競爭對手&#xff0c;進展未達預期。 國行iPhone將引入雙AI模型 蘋果計劃在2025年中期為國行iPhone引入AI功能&#xff0c;目前已敲定與 阿里巴巴、百度 合作&#xff0c;用戶…

阿里推出全新推理模型(因果語言模型),僅1/20參數媲美DeepSeek R1

阿里Qwen 團隊正式發布了他們最新的研究成果——QwQ-32B大語言模型&#xff01;這款模型不僅名字萌萌噠(QwQ)&#xff0c;實力更是不容小覷&#xff01;&#x1f60e; QwQ-32B 已在 Hugging Face 和 ModelScope 開源&#xff0c;采用了 Apache 2.0 開源協議。大家可通過 Qwen C…

TomcatServlet

https://www.bilibili.com/video/BV1UN411x7xe tomcat tomcat 架構圖&#xff0c;與 jre&#xff0c;應用程序之前的關系 安裝使用 tomcat 10 開始&#xff0c;api 從 javax.* 轉為使用 jakarta.*&#xff0c;需要至少使用 jdk 11 cmd 中默認 gbk 編碼&#xff0c;解決控制…