1. linux下軟鏈接和硬鏈接的區別是什麼
要深入理解軟鏈接和硬鏈接,那麼得先理解文件系統;
所以我只能粗略解釋下軟鏈接和硬鏈接;
硬鏈接:大小和block以及inode號都相同; 那麼說明他們根本就是同一個文件; 打個比方: 從上海坐飛機去北京, 飛機可以直飛北京, 也可以先去紐約轉一圈到北京, 這個就不同的飛行路線就是路徑, 但是目的都是相同的---北京(文件位置);;;
軟鏈接: 大小和block以及inode號都不同, 那麼說明他們根本就不是同一個文件, 那麼軟鏈接存放的是什麼呢? 存放的就是如何從上海到北京的路線(比如是從上海到紐約然後目標是北京的路線); 所以它得先到上海然後才能坐飛機到北京;
從上面的飛機例子中可以得出一個特性: 硬鏈接必須是上海到北京; 即: 必須是同一個文件系統;
軟體可以是其他地方到上海然後坐飛機到北京; 可以他可以在不同的文件系統;
stat filename 這個命令記住; 看看Inode號, 就能知道硬鏈接和軟鏈接是什麼了; Inode對於文件系統非常重要; Inode是一個文件的元數據, 如果相同的; 那麼根本就是同一個文件;;;
所以硬鏈接不是文件的復制2份; 說實話我不知道快捷方式的原理, 因為我沒有去解讀過NTFS文件系統; 所以軟鏈接是不是快捷方式我不好說, 但是軟鏈接其實就是存放著另一個文件的路徑的文件;;
2. linux 下 我創建了一個軟連接,但是這個軟連接的文件夾 無法訪問 原文件夾的許可權是777
1:請復確認您的軟連接制的許可權,請使用ll 列出軟連接的許可權設定
2:請確認共享的許可權設定
3:請確認你源文件夾的許可權設定
推測問題所在:如果在共享裡面可以訪問其他子文件夾。但是無法訪問該軟連接的文件夾。那麼可能問題是:源文件的許可權設定不對。
請確認一下你的源文件夾的許可權是否和共享設定的許可權
3. 詳解Linux系統中軟連接和硬鏈接的區別與聯系
(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,並在磁碟上有一小片空間存放路徑名,但軟鏈接文件沒有屬於自己的文件塊.
軟鏈接比較像windows下的快捷方式。
(3)軟鏈接可以對一個不存在的文件名進行鏈接。
(4)軟鏈接可以對目錄進行鏈接。
備註:i節點
:它是unix內部用於描述文件特性的數據結構.我們通常稱i節點為文件索引結點(信息結點).i節點
含有關於文件的大部分的重要信息,包括文件數據塊在磁碟上的地址.每一個i節點有它自己的標志號,我們稱為文件順序號.i節點包含的信息
1.文件類型
2.文件屬主關系
3.文件的訪問許可權
4.文件的時間截.
4. Linux系統硬鏈接和軟鏈接
在Linux系統中,鏈接文件用於解決文件共享使用,主要分為硬鏈接和軟鏈接(符號鏈接)兩種。
要查看系統中哪些是鏈接文件,只需查看文件列表的第一列許可權位,若顯示為'l',則為鏈接文件。
硬鏈接允許多個文件名指向同一索引節點(Inode),通過索引節點實現鏈接。硬鏈接可以防止「誤刪」源數據,但只能在同一文件系統中的文件之間進行鏈接。
軟鏈接則類似於Windows系統的快捷方式,是一個普通文件,內容為指向另一文件路徑名的鏈接。軟鏈接可以對文件或目錄創建,刪除軟鏈接不會影響被指向的文件,但若原文件被刪除,則相關軟連接變為死鏈接。
硬鏈接與軟鏈接的主要區別在於硬鏈接為同一索引節點下的多個鏈接,而軟鏈接則通過路徑名指向目標文件。不論是硬鏈接還是軟鏈接,都不會復制文件,僅佔用少量磁碟空間。
在Linux中,可以使用`ln`命令創建鏈接文件。`ln`命令格式為`ln [參數] [源文件或目錄] [目標文件或目錄]`,其中主要參數包括創建硬鏈接和軟鏈接所需的選項。
硬鏈接僅能鏈接文件,不能指向目錄;軟鏈接則能對文件或目錄創建鏈接。
刪除文件測試時,刪除軟鏈接不會影響目標文件,但若目標文件被刪除,則相關軟鏈接變為無效鏈接。硬鏈接不能指向目錄,而軟鏈接可以。
硬鏈接和軟鏈接的使用場景各不相同,硬鏈接用於防止數據誤刪,軟鏈接用於文件或目錄的快速定位。在實際操作中,需根據具體需求選擇使用硬鏈接或軟鏈接。
5. linux 軟連接和硬鏈接的區別
Linux的ln命令是建立連接文件的命令,ln命令如果不用-s選項,建立的連接文件就是硬連接,ln命令如果加-s選項就是建立符號連接也就是軟連接。還有的區別就是建立硬連接只能在同一個文件系統內進行,不能跨文件系統;硬連接不能連接到目錄,只能連接到文件。而軟連接就沒有這些限制,軟連接可以跨文件系統,也可以連接到目錄。因為硬連接的這些限制,所以軟連接的使用要比硬連接更加廣泛,這些就是它們之間的區別。
6. 怎麼更改linux的軟鏈接的許可權為755
軟連接的許可權是沒有用的,不需要改,改了也沒用,重要的是源文件的許可權
7. linux對軟連接操作
由 1 號inode 讀取到連結檔的內容僅有檔名,根據檔名鏈接到正確的目錄去取得目標文件的inode ,
最終就能夠讀取到正確的數據了。
創建軟連接,從下圖可以看出軟連接的大小是11個位元組,對比/etc/passwd和passwdlns可知他們不是同一個文件。
對指向文件的的軟連接 :使用cp oldfilename newfilename ,是對軟連接指向的文件進行復制,屬性和大小都和指向文件相同。
如果只是想復制軟連接可以使用:cp -d filename1 filename2
復制指向目錄的軟連接 :
使用cp -r dir1 dir2 可以看出對於指向目錄的軟連接的復制是對軟連接復制的。
如果我就是相同過軟連接復制目錄下的全部文件,該如何呢?
使用rm刪除文件結果如下,可以看到刪除的是軟連接文件。
使用rm刪除軟連接指向的源文件,趕緊將備份的passwd文件還原。
對於目錄的刪除是對軟連接進行刪除還是目標目錄:
在目錄後不加/是對軟連接進行操作:
在目錄後加上/是對連接目錄進行刪除:下圖可以看出/tmp/testdir的大小已經變成了6了,刪除了目錄里的全部文件。
對軟連接改變許可權會對源文件有什麼樣的影響 :不管是文件軟連接還是目錄軟連接,對軟連接進行修改許可權,修改的是目標文件和目錄的許可權