亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

詳解Linux ln 命令

2020-07-27 18:44:24
字體:
來源:轉載
供稿:網友

Linux 中的文件分為 Hard Link 和 Symbolic Link 兩種。Hard Link 文件又被稱為硬鏈接文件、實體鏈接文件,Symbolic Link 文件則常被稱為符號鏈接、軟鏈接文件。

ln 命令用來在文件之間建立鏈接。在介紹 ln 命令前,讓我們先來搞清楚究竟什么是硬鏈接,什么又是軟鏈接。

Hard Link(硬鏈接)

我們知道,在 Linux 系統中,每個文件對應一個 inode,文件的內容在存儲在 inode 指向的 data block 中。要讀取該文件的內容,需要通過文件所在的目錄中記錄的文件名找到文件的 inode 號,然后通過 inode 找到存儲文件內容的 data block(參考《Linux 文件與目錄》)。

也就是說,文件名存儲在目錄中,inode 號執行文件存儲的內容,文件名和 inode 之間有一個對應關系。那么多個文件名可不可以同時指向同一個 inode 呢?答案是可以的,這就是硬鏈接!從本質上來說,硬鏈接只是在目錄下新添加了一個文件名,這個文件名與一個已有文件的 inode 相關聯。讓我們也通過 /etc/crontab 文件來進行觀察:

$ ll -i /etc/crontab131213 -rw-r--r-- 1 root root 722 Nov 16 2017 /etc/crontab

使用 ln 命令在當前目錄下創建一個 /etc/crontab 文件的硬鏈接,然后觀察其文件屬性:

$ sudo ln /etc/crontab .$ ll -i /etc/crontab crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 crontab131213 -rw-r--r-- 2 root root 722 Nov 16 2017 /etc/crontab

這兩個文件名關聯的 inode 號完全相同,都是 131213,所以它們指向的是同一個文件。同時請注意文件屬性中的第三個字段,由 1 變成了 2。這個字段被稱為 "鏈接數",它說明有多少個文件名鏈接到同一個文件的 inode。

另外需要注意的一點是上面所有輸出中的第二個字段中的第一位,它們都是 "-",它說明這個文件的類型為普通文件,鏈接類型為硬鏈接。

我們可以通過下圖來理解硬鏈接在文件系統中的實現方式:

硬鏈接的特點

  • 幾乎不額外占用空間
  • 只要還有一個文件名引用著文件,文件就不會被真正刪除

由于硬鏈接只是在目錄中添加了一條包含文件名和 對應 inode 的記錄,所以它幾乎不會消耗額外的磁盤容量。
另外在刪除硬鏈接所關聯的文件時,其實只是刪除了一條目錄中的記錄,真正的文件并不受影響。只有在刪除最后一個硬鏈接時才會真正刪除文件的內容數據。

硬鏈接的局限性

  • 不能跨文件系統創建硬鏈接
  • 不能鏈接目錄

由于這兩個限制,實際使用中硬鏈接并沒有軟鏈接使用的廣泛,下面我們看看究竟什么是軟鏈接。

Symbolic Link(軟鏈接)

軟鏈接的實現方式與硬鏈接有本質上的不同。創建軟鏈接時會創建一個新的文件(分配一個 inode 和對應的 data block),新文件的 data block 中存儲了目標文件的路徑。
還拿 /etc/crontab 文件舉例子,這次創建一個軟鏈接并查看其文件屬性:

$ sudo ln -s /etc/crontab crontab2

第一列,兩個文件名對應的 inode 不同,說明這是兩個文件。

第二列顯示的文件權限也不一樣,這一點和硬鏈接完全不同。注意文件類型被標記為 "l",說明這是一個軟鏈接文件。

第三列很有意思,注意 /etc/crontab 文件的鏈接數量,還是 2,這和創建軟鏈接文件 crontab2 前是一樣的。也就是說創建軟鏈接并不增加原文件的鏈接數。

第六列是文件大大小,注意新建的軟鏈接文件大小為 12 Bytes,也就是字符串 "/etc/crontab" 的長度。

最后一列會友好的顯示出軟鏈接文件指向的源文件。

我們可以通過下圖來理解軟鏈接在文件系統中的實現方式:

從上圖我們可以看出,軟鏈接文件 crontab2 是一個實實在在的文件,有自己的 inode 和 data block。但是它的 data block 中保存的是目標文件的地址:/etc/crontab。 像 open() 這樣的 API 能夠識別出軟鏈接,并根據 data block 中的目標文件徑把操作重定向到目標文件上。

可以鏈接目錄是軟鏈接的一大優勢,創建目錄鏈接的方式和普通文件一樣:

$ ln -s /bin testbin

此時進入 testbin 目錄和進入 /bin 目錄是一樣的。

更厲害的是,還可以跨文件系統創建軟鏈接!

刪除源文件

對于軟鏈接來說,刪除源鏈接后,鏈接文件就會無法找到指向的源文件了??聪旅娴难菔荆?/p>

$ echo "hello world" > hello.txt$ ln -s hello.txt hello2$ cat hello2hello world$ rm hello.txt$ cat hello2cat: hello2: No such file or directory

刪除原文件后,操作鏈接文件時的提示是:"No such file or directory"。

文件的鏈接數

從上文中的示例我們可以看到,當創建硬鏈接文件時,文件的鏈接數會增加 1,而創建軟鏈接時文件的鏈接數卻不發生變化。

下面讓我們看一個目錄文件的鏈接數,先創建一個空目錄:

$ mkdir /home/nick/testdir$ ll /home/nick | grep testdirdrwxr-xr-x 2 nick nick 4096 Jul 10 08:58 testdir/

新建的空目錄有兩個硬鏈接,分別是:

/home/nick/testdir/home/nick/testdir/.

而 /home/nick/testdir 目錄下還有一個指向其父目錄的硬鏈接:/home/nick/testdir/..
也就是說當我們創建一個目錄時,其父目錄的硬鏈接數會增加 1。

ln 命令

ln 命令用來在文件之間建立鏈接,其的常用方式為:

ln source targetln -s source target

它們分別用來創建硬鏈接文件和軟鏈接文件。還有一個比較常用的選項是 f,它會強制刪除已經存在的目標文件。

總結

以上所述是小編給大家介紹的Linux ln 命令,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区三区在线观看| 成人精品久久一区二区三区| 欧美激情视频在线| 亚洲人成在线观看| 91在线视频免费| 精品久久久久久中文字幕一区奶水| 亚洲一区二区自拍| 亚洲精品视频久久| 色伦专区97中文字幕| 欧美成在线观看| 黑人极品videos精品欧美裸| 久久伊人精品视频| 日韩一区二区三区国产| 久久精品影视伊人网| 91视频88av| 丝袜一区二区三区| 久久成人精品视频| 亚洲在线免费视频| 欧美精品在线观看91| 亚洲欧美国产制服动漫| 一区二区欧美久久| 国产精品96久久久久久| 亚洲春色另类小说| 国产欧美日韩中文字幕在线| 亚洲一区www| 成人精品一区二区三区电影黑人| 国产精品视频久久久久| 亚洲国产成人精品一区二区| 一区二区中文字幕| 在线视频日本亚洲性| 日韩免费观看在线观看| 精品久久久久久久久久久| 国产日韩欧美在线播放| 国产成人av网址| 国产伦精品免费视频| 欧美日韩激情视频| 成人激情视频在线观看| 狠狠久久亚洲欧美专区| 欧美日韩国产影院| 91精品国产自产在线老师啪| 午夜精品久久久久久久99黑人| 91精品中国老女人| 91精品国产网站| 久久久亚洲欧洲日产国码aⅴ| 视频在线观看一区二区| 一区二区福利视频| 亚洲午夜av电影| 日韩国产高清视频在线| 亚洲福利在线播放| 川上优av一区二区线观看| 欧美一级免费看| 国产精品电影在线观看| 欧美亚洲午夜视频在线观看| 亚洲深夜福利网站| 91久久精品在线| 亚洲天堂av电影| 久久精品国产亚洲| 亚洲一区二区在线播放| 欧美精品videosex牲欧美| 亚洲成人av中文字幕| 精品中文字幕在线观看| 久久久久久美女| 欧美在线视频在线播放完整版免费观看| 欧美精品免费播放| 欧美成人精品在线视频| 欧美交受高潮1| 97激碰免费视频| 欧美刺激性大交免费视频| 亚洲 日韩 国产第一| 精品夜色国产国偷在线| 欧美极品少妇xxxxⅹ裸体艺术| 久久久久久久久中文字幕| 国产一区二区三区在线免费观看| 性欧美长视频免费观看不卡| 亚洲欧美第一页| 国产精品久久久久77777| 亚洲精品视频网上网址在线观看| 色与欲影视天天看综合网| 国产亚洲精品久久久| 欧美成人网在线| www.日韩视频| 国产精品视频免费在线| 日韩成人在线电影网| 久久免费高清视频| 欧美电影电视剧在线观看| 午夜精品在线视频| 国产99久久精品一区二区永久免费| 国产精品视频区1| 91久久夜色精品国产网站| 久久精品亚洲国产| 亚洲日韩欧美视频一区| 亚洲性av网站| 亚洲欧美日韩一区二区在线| 欧美日韩免费在线观看| 日韩av一卡二卡| 久久久久久噜噜噜久久久精品| 亚洲色图35p| 亚洲精品99久久久久| 最好看的2019年中文视频| 亚洲第一视频网站| 国产色视频一区| 日韩av在线精品| 乱亲女秽乱长久久久| 91在线无精精品一区二区| 久久91精品国产91久久跳| 久久亚洲私人国产精品va| 国产精品福利在线观看网址| 国产99久久精品一区二区永久免费| 欧美亚洲另类激情另类| 国产丝袜精品第一页| 久久综合色88| 亚洲精品一区二区三区婷婷月| 欧美日韩国产麻豆| 51ⅴ精品国产91久久久久久| 日韩美女视频在线观看| 国产精品视频一区国模私拍| 欧美视频一区二区三区…| 欧美在线观看日本一区| 国产欧美一区二区三区在线| 亚洲少妇中文在线| 亚洲一区二区三区在线视频| 欧美日韩不卡合集视频| 欧美中文字幕视频| 国产成人精品av在线| 亚洲成av人片在线观看香蕉| 久久久久久中文字幕| 日本高清视频一区| 2019亚洲日韩新视频| 日韩在线观看免费高清| 精品国产福利视频| 亚洲精品永久免费精品| 欧美成人精品在线观看| 欧美怡红院视频一区二区三区| 国产69久久精品成人看| 亚洲国内高清视频| 一本大道香蕉久在线播放29| 亚洲第一男人av| 国产精品美女久久久久av超清| 国产精品香蕉国产| 欧美成人性生活| 国产亚洲美女精品久久久| 国产精品色婷婷视频| 国产成人精品日本亚洲| 欧美在线观看网站| 91精品国产高清自在线看超| 欧美不卡视频一区发布| www.欧美精品一二三区| 亚洲自拍偷拍视频| 国产日韩欧美视频在线| 日韩中文字幕在线| 国产精品亚洲视频在线观看| 国产精品视频免费在线观看| 亚洲精品一区二三区不卡| 国产日韩换脸av一区在线观看| 91久久精品国产91久久| 亚洲色图校园春色| 欧美日韩中国免费专区在线看| 亚洲欧美成人网| 国产精品成久久久久三级| 欧美另类极品videosbestfree| 国产精品免费看久久久香蕉| 国产性色av一区二区| 亚洲精品999| 午夜欧美大片免费观看|