1、首先有一個目錄dir, 執行ln -s dir dir_link 創建目錄的軟鏈接。
2. linux ln -s 用ln -s 鏈接 根目錄到 /home/good怎麼做啊。
創建軟連接,命令如下:
ln
-s
/
/home/good/linkname
ln的鏈接分軟鏈接和硬鏈接兩種:
1、軟鏈接就是:「ln
–s
源文件
目標文件蘆櫻」,只會在選定的位置上生成一個文件的鏡像,不會佔用磁碟空間,類似與windows的快捷方式。
2、硬鏈接ln源文件目標晌嘩鉛文件,沒有參數-s,
會在選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保宴好持同步變化。
3. Linux軟鏈接和硬鏈接的區別之ln命令詳解
1. 先來了解一下Linux數據是如何保存和查詢的
對操作系統來說,數據分為兩種:1. 用戶數據 (user data) 2.元數據 (metadata)。用戶數據就是保存和記錄文件的內容。比如一個1M的ppt文件,500K的txt文件。這都屬於用戶數據。這個文件總有屬性吧,比如大小、修改時間、訪問時間、創建時間、存儲的位置(文件所在的inode)、文件創建者等等信息。這些屬性信息或者理解為匯總信息,我們稱它為元數據。一句話,用戶數據是文件的真實內容,而元數據則是匯總信息。
在 Linux 中,元數據中的 inode 號(inode 號即索引節點號)才是文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統或程序通過 inode 號尋找正確的文件數據塊。
2. 查看文件對應的inode號
134474678 latest.tar.gz
linux查看文件對應的inode號
可以看出latest.tar.gz這個文件, inode 號是134474678,Linux查找讀寫該文件時,以為個inode號碼為標識,而不是文件名。文件名類似於網站域名,僅僅是方便人類記憶。
也就是說, inode134474678有一個硬鏈接,它就是latest.tar.gz。
3. 根據inode號查找對應的文件
那麼,問題來了,系統上有沒有第二個文件,它的inode號碼也是13447467。
使用find查找一下:
查找結果如下:
/root/latest.tar.gz
/root/latest2.tar.gz
linux根據inode號查找對應的文件
硬碟上真的有第二個文件它的inode號碼也是134474678,像這種情況,我們認為inode134474678有兩個硬鏈接。當然,這是本文作者提前准備好的。
為解決文件的共享使用,Linux 系統引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加許可權安全及節省存儲等好處。
4. 確認硬鏈接的數量
查看一下文件latest.tar.gz
輸出結果如下:
-rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz
請留意輸出的結果中的數字2,表示該文件存在2個硬鏈接。
正常情況下,一個inode只有一個鏈接,如下例
輸出結果:
-rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt
請留意輸出的結果中的數字1,表示該文件只存在1個硬鏈接,默認情況下,文件都是只有一個硬鏈接的。
5. 查看軟鏈接
再來看一個文件
lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout -> /proc/self/fd/1
linux查看軟鏈接
我們發現,/dev/stdout實際上指向另一個文件/proc/self/fd/1,這就是軟鏈接。類似於Windows系統上的快捷方式。
6. 軟鏈接與硬鏈接的區別
6.1 軟鏈接特點
6.2 硬鏈接特點
ln鏈接符原理如下:
Linux ln鏈接符原理圖
7. 創建文件的鏈接
Linux ln命令是一個非常重要而且常用命令,它用於為文件或者目錄創建鏈接。
7.1 創建軟鏈接
創建一個文件,用於演示軟鏈接。
創建軟鏈接示例:
檢查結果:
輸出文件屬性
lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt -> soft.txt
linux創建軟鏈接
可以看出這個文件指向當前目錄soft.txt,配置成功。7.2 創建硬鏈接
創建一個文件,用於演示硬鏈接。
創建硬鏈接,沒有使用選項
檢查結果:
輸出文件屬性:
-rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt
linux創建硬鏈接
留意以上輸出數字2,表明該文件有2個副本。
8. 總結
ln命令可以創建文件的副本,也可以創建軟鏈接。
4. linux ln命令詳解
ln是中一個非常重要命令。它的功能是為某一個文件在另外一個位置建立一個同步的鏈接,這個命令最常用的參數是-s,具體用法是:
ln
-s
源文件
目標文件
-s
是
symbolic的意思。
例:ln
-s
/lib/lsb
/usr/lj
即:在usr目錄下建立指向/lib/lsb目錄的lj文件。
當
我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在其它的
目錄下用ln命令鏈接(link)它就可以,不必重復的佔用磁碟空間。例如:ln
-s
/bin/less
/usr/local/bin/less-s
是代號(symbolic)的意思。這里有兩點要注意:第一,ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生
相同的變化;第二,ln的鏈接又軟鏈接和硬鏈接兩種,軟鏈接就是ln
-s
**
**,它只會在你選定的位置上生成一個文件的鏡像,不會佔用磁碟空間,硬鏈接ln
**
**,沒有參數-s,
它會在你選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。軟鏈接是可以跨分區的,但是硬鏈接只能在同一分區
內。如果你用ls察看一個目錄時,發現有的文件後面有一個@的符號,那就是一個用ln命令生成的文件,用ls
-l命令去察看,就可以看到顯示的link的路徑了當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,
我們只要在某個固定的目錄,放上該文件,然後在其它的目錄下用ln命令鏈接(link)它就可以,不必重復的佔用磁碟空間。例如:ln
-s
/bin/less
/usr/local/bin/less
5. linux硬鏈接和軟連接有什麼區別
很多朋友想知道linux軟連接和硬鏈接的區別有什麼,下面就讓我們來看看吧。
1、作用對象
硬鏈接只能應用於文件而不能應用於目錄,而且也不能分區;軟鏈接可以應用於文件,而且可以應用於目錄和分區。
2、語法不同
硬鏈接的語法:lnfilenamelinkname。
軟鏈接的語法:ln-sfilenamelinkname。
Linux的用處
linux是一套免費開放源代碼的操作系統,用戶可以按照自己的想法來修改源代碼,它的每一個操作,你都能者改夠充分了解,這對計算機方面的愛好者是有很大幫助的,它可以讓用戶知道系統是怎樣工作的虛改。
Linux的語言
linux開發用首譽判的是C語言和匯編語言。C語言是Linux的「母語」,這也是linux這個開源環境和本身機制所導致的。Linux的內核部分基本都是用C語言來編寫的,還有部分是用匯編語言寫的。
6. Linux/Unix里,ln -s這個命令是做什麼的我是小白,謝謝你。
用來建立一個軟鏈接,而ln -s /usr/lib/libX11.3 libX11.sl的意思為:為/usr/lib/libX11.3文件建立一個名為libX11.sl的軟鏈接。
命令格式:
ln [參數][源文件或目錄][目標文件或目錄]
參數
1、-b 刪除,覆蓋以前建立的鏈接
2、-d 允許超級用戶製作目錄的硬鏈接
3、-f 強制執行
4、-i 交互模式,文件存在則提示用戶是否覆蓋
5、-n 把符號鏈接視為一般目錄
6、-s 軟鏈接(符號鏈接)
7、-v 顯示詳細的處理過程
(6)linuxln硬鏈接擴展閱讀
軟鏈接解釋
1、軟鏈接,以路徑的形式存在。類似於Windows操作系統中的快捷方式。
2、軟鏈接可以 跨文件系統 ,硬鏈接不可以。
3、軟鏈接可以對一個不存在的文件名進行鏈接。
4、軟鏈接可以對目錄進行鏈接。
硬鏈接:
1、硬鏈接,以文件副本的形式存在。但不佔用實際空間。
2、不允許給目錄創建硬鏈接。
3、硬鏈接只有在同一個文件系統中才能創建。
7. Linux上ln命令詳細說明及軟鏈接和硬鏈接的區別
硬鏈接就是同一個文件使用了多個別名(他們有共同的 inode)。硬鏈接可由命令 link 或 ln 創建,如:
link oldfile newfile
ln oldfile newfile
由於硬鏈接是有著相同 inode 號僅文件名不同的文件,因此,刪除一個硬鏈接文件並不影響其他有相同 inode 號的文件。
硬鏈接不能對目錄進行創建,只可對文件創建。
軟鏈接(也叫符號鏈接)與硬鏈接不同,文件用戶數據塊中存放的內容是另一文件的路徑名的指向。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。
軟鏈接可對文件或目錄創建。
ln -s old.file soft.link
ln -s old.dir soft.link.dir
加-s選項表示創建的是軟鏈接。
刪除軟鏈接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接就變成了死鏈接。
8. linux 怎麼刪除 創建的 鏈接 ln
linux命令 - ln - 創建和刪除軟、硬鏈接
在Linux系統中,內核為每一個新創建的文件分配一個Inode(索引結點),每個文件都有一個惟一的inode號。文件屬性保存在索引結點里,在訪問文件時,索引結點被復制到內存在,從而實現文件的快速訪問。
鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。Linux中包括兩種鏈接:硬鏈接(Hard Link)和軟鏈接(Soft Link),軟鏈接又稱為符號鏈接(Symbolic link)。符號連接相當於Windows下的快捷方式。
一、硬鏈接
硬鏈接說白了是一個指針,指向文件索引節點,系統並不為它重新分配inode。可以用:ln命令來建立硬鏈接。
語法:
ln [options] existingfile newfile(sexistingfile 待建立鏈接文件的文件,newfile是新創建的鏈接文件)
ln [options] existingfile-list directory
-f 建立時,將同檔案名刪除.
-i 刪除前進行詢問.
ln -s abc cde 建立abc 的軟連接
ln abc cde 建立abc的硬連接,
用法:
第一種:為」existingfile」創建硬鏈接,文件名為」newfile」。
第二種:在」directory」目錄中,為」existingfile-list」中包含的所有文件創建一個同名的硬鏈接。
常用可選[options] –f 無論」newfile」存在與否,都創建鏈接。-n 如果」newfile」已存在,就不創建鏈接。
下面舉一些例子:
[[email protected] test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
[[email protected] test]# ln file2 file2hand
[[email protected] test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]#
注意在創建鏈接前,file1 顯示的鏈接數目為1,創建鏈接後file1和file1hard的鏈接數目都變為2;file1和file1hard在inode號是一樣的file1和file1hard顯示的文件大小也是一樣。可見進行了ln命令的操作結果:file1和file1hard是同一個文件的兩個名字,它們具有同樣的索引節點號和文件屬性,建立文件file1的硬鏈接,就是為file1的文件索引節點在當前目錄上建立一個新指針。你可以刪除其中任何一個,如rm file2 ,每次只會刪除一個指針,鏈接數同時減一,當鏈接數減為0時,內核才會把文件內容從磁碟上刪除。
還可以在不同目錄,但同一文件系統中建立文件的硬鏈接。設file1、file2在目錄/home/root/dir1中,下面的命令,在/home/root中建立file2的硬鏈接。
ln file2 /home/root/file2hard
下面的程序,是將dir1目錄中所有文件,在目錄dir2中建立硬鏈接
#mkdir dir2
#ln /home/root/dir1/* /home/root/dir2
如果使用了 ln –f existingfile newfile,如果newfile已經存在,則無論原來newfile是什麼文件,只用當前用戶對它有寫許可權,newfile就成為exisitngfile的硬鏈接文件。
盡管硬鏈接節省空間,也是Linux系統整合文件系統的傳統方式,但是存在一下不足之處:
(1)不可以在不同文件系統的文件間建立鏈接
(2)只有超級用戶才可以為目錄創建硬鏈接。
二、軟鏈接(符號鏈接)
軟鏈接克服了硬鏈接的不足,沒有任何文件系統的限制,任何用戶可以創建指向目錄的符號鏈接。因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網路對文件進行鏈接。
建立軟鏈接,只要在ln後面加上選項 –s,下面舉個例子
[[email protected] test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]# ln -s file1 file1soft
[[email protected] test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
從上面鏈接後的結果可以看出來軟鏈接與硬鏈接,區別不僅僅是在概念上,在實現上也是不同的。區別:硬鏈接原文件&鏈接文件公用一個inode號,說明他們是同一個文件,而軟鏈接原文件&鏈接文件擁有不同的inode號,表明他們是兩個不同的文件;在文件屬性上軟鏈接明確寫出了是鏈接文件,而硬鏈接沒有寫出來,因為在本質上硬鏈接文件和原文件是完全平等關系;鏈接數目是不一樣的,軟鏈接的鏈接數目不會增加;文件大小是不一樣的,硬鏈接文件顯示的大小是跟原文件是一樣的,這用強調,因為是等同的嘛,而這里軟鏈接顯示的大小與原文件就不同了,file1大小是48B,而file1soft是5B,這裡面的5實際上就是「file1」的大小。
總之,建立軟鏈接就是建立了一個新文件。當訪問鏈接文件時,系統就會發現他是個鏈接文件,它讀取鏈接文件找到真正要訪問的文件。
在不同系統之間建立軟鏈接、對目錄建立鏈接,這里就不舉例了,讀者可以自己去嘗試,我也是在不斷實踐中學習的。
當然軟鏈接也有硬鏈接沒有的缺點,因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了~~,而硬鏈接就沒有這個缺陷,你想怎麼移就怎麼移(呵呵);還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。
補充一下:可以通過symlink來查看鏈接文件,可以用 man symlink來學習。
三、刪除鏈接
有創建就有刪除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
[[email protected] test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]# rm -rf file1soft
[[email protected] test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[[email protected] test]#
————————————
linux 軟連接和硬鏈接的區別:
————————————
4點不同 :
(1)軟連接可以 跨文件系統 ,硬連接不可以 。
實踐的方法就是用共享文件把windows下的 aa.txt文本文檔連接到linux下/root目錄 下 bb,cc . ln -s aa.txt
/root/bb 連接成功 。ln aa.txt /root/bb 失敗 。
(2)關於 I節點的問題 。硬連接不管有多少個,都指向的是同一個I節點,會把 結點連接數增加 ,只要結點的連接數不是 0,文件就一直存在 ,不管你刪除的是
源文件還是 連接的文件 。只要有一個存在 ,文件就 存在 (其實也不分什麼 源文件連接文件的 ,因為他們指向都是同一個 I節點)。 當你修改源文件或者連接文件
任何一個的時候 ,其他的 文件都會做同步的修改 。軟鏈接不直接使用i節點號作為文件指針,而是使用文件路徑名作為指針。所以 刪除連接文件 對源文件無影響,但
是 刪除 源文件,連接文件就會找不到要指向的文件 。軟鏈接有自己的inode,並在磁碟上有一小片空間存放路徑名.
(3)軟連接可以對一個不存在的文件名進行連接 。
(4)軟連接可以對目錄進行連接。
備註:I節點 :它是UNIX內部用於描述文件特性的數據結構.我們通常稱I節點為文件索引結點(信息結點).i節點 含有關於文件的大部分的重要信 息,包括文件數據塊在
磁碟上的地址.每一個I節點有它自己的標志號,我們稱為文件順序號.I節點包含的信息 1.文件類型 2.文件屬主關系 3.文件的訪問許可權 4.文件的時間截.
Note:
硬鏈接看做是文件的副本
軟連接看做是文件的快捷方式
9. linux給文件創建硬鏈接
在了Linux下創建硬連接和軟連接(也就是符號連接)都是用ln命令,當使用ln命令時加上-s選項就表示創建的連接文件是一個軟連接,如果使用ln命令時不帶-s選項就表示創建的是一個硬連接。而ln命令的格式則是:ln 原文件 連接文件
比如如下命令是創建硬連接的,/home/testfile就是創建的硬連接文件,它連接到/root/testfile這個文件:
ln /root/testfile /home/testfile
下面的則是創建軟連接的,這次/home/testfile是一個軟連接文件:
ln -s /root/testfile /home/testfile
10. Linux中硬鏈接和軟鏈接的區別與聯系!
鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。在Linux操作系統中,鏈接被分為兩種:軟鏈接(SoftLink,符號鏈接)和硬鏈接(HardLink)。那麼什麼是軟鏈接?什麼是硬鏈接?Linux中軟鏈接和硬鏈接之間有什麼區別和聯系?以下是詳細的內容介紹。
為解決文件的共享使用,Linux系統引入了兩種鏈接:硬鏈接和軟鏈接。在Linux中,元數據中的inode號才是文件的唯一標識而非文件名,文件內容要通過inode號來尋找,猶如交通指示牌一樣,指示著數據找尋的方向。
硬鏈接(Hard Link)
A和B的硬鏈接,則慧汪純A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。如果刪除其中一個,對另外一個沒有任何影響。每增加一個文件名,inode節點上的鏈接數增加一,每刪除一個對應的文件名,inode節點上的鏈接數減一,直到為0,inode節點和對應的數據塊被回收。
註:文件和文件名是不同的東西,rm A刪除的只是A這個文件名,而A對應的數據塊只有在inode節點鏈接數減少為0的時候才會被系統回收。
軟鏈接(Soft Link)
A是B的軟鏈接,A的目錄項中的inode節點號與B的目錄項中的節點號不相同,A和B指向的是兩個不陵悶同的inode,繼而指向兩塊不同的數據塊。但是A的數據塊中存放的只是B的路徑名。A和B之間是主從關系,如果B被刪除了,A依然存在,但指向的是一個無效的鏈接。
Linux中軟鏈接和硬鏈接之間有什麼區別和聯系?
概念不同:
軟鏈接可以理解成快捷方式,和原文件的inode號不一樣,它和Windows下的快捷方式的作用是一樣的,軟鏈接數據塊中記錄的亦是相對路徑指向。
硬鏈接和原文件對應一個inode,就是對應一個文件,可以理解成一個文件有幾個別名。
用法不同:
軟鏈接可以理解成快捷方式,也清楚知道原文件在哪裡。它和Windows下的快捷方式前咐的作用是一樣的,和Windows一樣,刪除源文件,快捷方式也就無法使用了。
硬鏈接可以看成一個備份,但並沒有增加空間,因為文件就一個,這種可以防止源文件刪除後不能使用問題;同時也有局限性,不能對目錄和跨文件系統使用。
語法格式(ln):
硬鏈接:ln 源文件 鏈接名
軟鏈接:ln -s 源文件 鏈接名
注意:鏈接的源文件路徑要寫絕對路徑,否則會報錯。