linux中的ln属性,linux 常用基础命令 ln 详细介绍
命令介紹:
ln是linux中又一個非常重要命令,ln是為某一個文件在另外一個位置建立一個同步的鏈接。當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄放上該文件,然后在其它的目錄下用ln命令鏈接(link)它就可以,不必重復(fù)的占用磁盤空間。
命令格式:
ln 【參數(shù)】【源文件】【目標文件】
命令功能:
Linux文件系統(tǒng)中,有所謂的鏈接(link),而鏈接又可分為兩種:
硬鏈接(hardlink): 硬鏈接指通過索引節(jié)點(Inode)來進行連接。在Linux中,多個文件名指向同一索引節(jié)點是存在的;一般這種連接就是硬鏈接。
小結(jié):硬鏈接文件是具有相同inode節(jié)點號的不同文件;
刪除硬鏈接文件或者刪除源文件之一,文件實體并未被刪除;
只有刪除了源文件及所有對應(yīng)的硬鏈接文件,文件實體才會被刪除;
當所有的硬鏈接文件及源文件被刪除后,文件的數(shù)據(jù)塊及目錄的鏈接才會被釋放,或磁盤fsck檢查的時候;也就是說,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除;
硬鏈接文件是文件的又一個入口;
可以通過給文件設(shè)置硬鏈接文件,來防止重要文件被誤刪;
通過執(zhí)行命令“l(fā)n 【源文件】【硬鏈接文件】”,即可完成創(chuàng)建硬鏈接;
硬鏈接的刪除“rm -f 硬鏈接文件”。
軟鏈接(symboliclink): 軟鏈接也稱之為符號鏈接(Symbolic Link)。在Linux中軟鏈接文件類似于Windows的快捷方式。它實際上是一個特殊的文件。
小結(jié):軟鏈接以路徑的形式存在,類似于Windows操作系統(tǒng)中的快捷方式;
刪除源文件,軟鏈接文件依然存在,但是無法訪問指向的路徑內(nèi)容;
執(zhí)行命令“l(fā)n -s 源文件軟鏈接文件”,即可完成創(chuàng)建軟鏈接;
軟鏈接可以對目錄進行鏈接;
軟鏈接和源文件是不同類型的文件也是不同的文件,inode號不同;
軟鏈接的刪除“rm -f 軟鏈接文件”。
默認情況下,ln命令產(chǎn)生硬鏈接;如果要創(chuàng)建軟鏈接(符號鏈接)必須使用"-s"選項。
注意:軟鏈接(符號鏈接)文件不是一個獨立的文件,它的許多屬性依賴于源文件,所以給符號鏈接文件設(shè)置存取權(quán)限是沒有意義的。
ln指令用在鏈接文件或目錄,如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經(jīng)存在的目錄,則會把前面指定的所有文件或目錄復(fù)制到該目錄中。若同時指定多個文件或目錄,且最后的目的地并非是一個已存在的目錄,則會出現(xiàn)錯誤信息。
命令參數(shù):
必要參數(shù):
-b 刪除,覆蓋以前建立的鏈接
-d 允許超級用戶制作目錄的硬鏈接
-f 強制執(zhí)行
-i 交互模式,文件存在則提示用戶是否覆蓋
-n 把符號鏈接視為一般目錄
-s 軟鏈接(符號鏈接)
-v 顯示詳細的處理過程
選擇參數(shù):
-S “-S ”或 “--suffix=”
-V “-V”或“--version-control=”
--help 顯示幫助信息
--version 顯示版本信息
命令實例:
實例1:給文件創(chuàng)建軟鏈接。[root@ilinux?test]#?ll
total?8
-rw-r--r--?2?root?root????0?Nov?22?06:33?lnlinux
drwxr-xr-x?2?root?root?4096?Nov?21?17:27test3
drwxr-xr-x?2?root?root?4096?Nov?21?17:25test5
[root@ilinux?test]#?ln?-s?lnlinux?lnlin_soft_link
[root@ilinux?test]#?ls?-li
total?8
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786447?-rw-r--r--?2?root?root????0?Nov?22?06:33?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
說明:為 lnlinux 源文件創(chuàng)建軟鏈接 lnlin_soft_link 。
實例2:給文件創(chuàng)建硬鏈接。[root@ilinux?test]#?ln?lnlinux?lnlin_hard_link
[root@ilinux?test]#?ls?-li
total?8
786447?-rw-r--r--?3?root?root????0?Nov?22?06:33?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786447?-rw-r--r--?3?root?root????0?Nov?22?06:33?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
說明:為 lnlinux 源文件創(chuàng)建硬鏈接 lnlin_hard_link 。
小結(jié):
從上面的實例結(jié)果中可以看出,硬鏈接文件 lnlin_hard_link 和源文件 lnlinux 的inode節(jié)點號相同,均為786447;而軟鏈接文件 lnlin_soft_link 的inode節(jié)點號與源文件 lnlinux 不同,為786443。
硬鏈接文件的鏈接數(shù)也增加了。
實例3:接上面兩個實例,鏈接完成后,刪除和重建鏈接源文件。[root@ilinux?test]#?ls?-li
total?16
786447?-rw-r--r--?3?root?root???12?Nov?22?06:54?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786447?-rw-r--r--?3?root?root???12?Nov?22?06:54?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
[root@ilinux?test]#?rm?-f?lnlinux
[root@ilinux?test]#?ls?-li
total?12
786447?-rw-r--r--?2?root?root???12?Nov?22?06:54?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
[root@ilinux?test]#?touch?lnlinux
[root@ilinux?test]#?ls?-li
total?12
786447?-rw-r--r--?2?root?root???12?Nov?22?06:54?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786445?-rw-r--r--?1?root?root????0?Nov?22?07:08?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
[root@ilinux?test]#?echo?"123">lnlinux
[root@ilinux?test]#?cat?lnlinux
123
[root@ilinux?test]#?cat?lnlin_hard_link
hello?linux
說明:
1.源文件被刪除后,并沒有影響硬鏈接文件;而軟鏈接文件在以紅底白字不斷的閃爍,提示源文件已經(jīng)不存在;
2.重建源文件后,軟鏈接文件不再閃爍提示,說明已經(jīng)鏈接成功,找到了鏈接文件系統(tǒng);
3.重建源文件后,硬鏈接文件并沒有受到源文件影響,硬鏈接文件的內(nèi)容還是保留了刪除前源文件的內(nèi)容,說明硬鏈接已經(jīng)失效。
實例4:往源文件寫入內(nèi)容,軟、硬鏈接文件的變化。[root@ilinux?test]#?ls?-li
total?8
786447?-rw-r--r--?3?root?root????0?Nov?22?06:33?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786447?-rw-r--r--?3?root?root????0?Nov?22?06:33?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
[root@ilinux?test]#?echo?"hellolinux"?>lnlinux
[root@ilinux?test]#?cat?lnlinux
hello?linux
[root@ilinux?test]#?cat?lnlin_soft_link
hello?linux
[root@ilinux?test]#?cat?lnlin_hard_link
hello?linux
說明:往源文件lnlinux里寫入內(nèi)容后,它的軟、硬鏈接文件同樣都有相同的內(nèi)容。
實例5:給目錄創(chuàng)建軟鏈接。[root@ilinux?test]#?ls?-li
total?16
786447?-rw-r--r--?2?root?root???12?Nov?22?06:54?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786445?-rw-r--r--?1?root?root????4?Nov?22?07:09?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
[root@ilinux?test]#?ln?-s?test3?test3_soft_link
[root@ilinux?test]#?ls?-li
total?16
786447?-rw-r--r--?2?root?root???12?Nov?22?06:54?lnlin_hard_link
786443?lrwxrwxrwx?1?root?root????7?Nov?22?06:35?lnlin_soft_link?->lnlinux
786445?-rw-r--r--?1?root?root????4?Nov?22?07:09?lnlinux
786444?drwxr-xr-x?2?root?root?4096?Nov?2117:27?test3
786451?lrwxrwxrwx?1?root?root????5?Nov?22?07:18?test3_soft_link?->?test3
786446?drwxr-xr-x?2?root?root?4096?Nov?2117:25?test5
說明:
1. 目錄只能創(chuàng)建軟鏈接文件,對于目錄的軟鏈接文件也是生產(chǎn)場景運維中常用的功能;
2. 目錄不能創(chuàng)建硬鏈接文件,是因為目錄本身就有硬鏈接文件。
創(chuàng)建一個空目錄里面就會有“.(當前目錄)和 ..(上一級目錄)”
.(當前目錄)和oldboydir 的 inode節(jié)點號是相同的,均為786453。
..(上一級目錄)和 ../oldboy 的 inode節(jié)點號是相同的,均為 786450。
鏈接總結(jié):
【文件鏈接】刪除軟鏈接文件,源文件和硬鏈接文件沒有任何變化;
刪除硬鏈接文件,源文件和軟鏈接文件沒有任何變化;
刪除源文件,硬鏈接文件沒有任何變化但軟鏈接文件會以紅底白字閃爍表示軟鏈接文件已失效;
同時刪除源文件和硬鏈接文件,整個文件才會真正的被刪除;
很多硬件設(shè)備中的快照功能,其實就是利用了硬鏈接的原理。
【目錄鏈接】目錄只能創(chuàng)建軟鏈接文件,不能創(chuàng)建硬鏈接文件;
目錄的軟鏈接文件是生產(chǎn)場景運維中常用的技巧;
每個目錄下面都有硬鏈接文件“.(當前目錄)和 ..(上一級目錄)”。
總結(jié)
以上是生活随笔為你收集整理的linux中的ln属性,linux 常用基础命令 ln 详细介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux+任务默认优先级,uclinu
- 下一篇: Iar环境c语言调用汇编函数,如何在IA