Linux ln命令


Linux ln命令是一個非常重要命令,它的功能是爲某一個文件在另外一個位置建立一個同步的鏈接。

當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在 其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間。

註釋是ln命令,並非in命令。

1 語法

注該模塊轉自:https://www.runoob.com/linux/linux-comm-ln.html

ln [參數][源文件或目錄][目標文件或目錄]

其中參數的格式爲
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

[–help] [–version] [–]

1.1 命令功能

Linux文件系統中,有所謂的鏈接(link),我們可以將其視爲檔案的別名,而鏈接又可分爲兩種 : 硬鏈接(hard link)與軟鏈接(symbolic link),硬鏈接的意思是一個檔案可以有多個名稱,而軟鏈接的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬鏈接是存在同一個文件系統中,而軟鏈接卻可以跨越不同的文件系統。

不論是硬鏈接或軟鏈接都不會將原本的檔案複製一份,只會佔用非常少量的磁碟空間。

1.3 軟連接

1.軟鏈接,以路徑的形式存在。類似於Windows操作系統中的快捷方式
2.軟鏈接可以 跨文件系統 ,硬鏈接不可以
3.軟鏈接可以對一個不存在的文件名進行鏈接
4.軟鏈接可以對目錄進行鏈接

1.4 硬鏈接

1.硬鏈接,以文件副本的形式存在。但不佔用實際空間。
2.不允許給目錄創建硬鏈接
3.硬鏈接只有在同一個文件系統中才能創建

1.5 命令參數

必要參數:

-b 刪除,覆蓋以前建立的鏈接
-d 允許超級用戶製作目錄的硬鏈接
-f 強制執行
-i 交互模式,文件存在則提示用戶是否覆蓋
-n 把符號鏈接視爲一般目錄
-s 軟鏈接(符號鏈接)
-v 顯示詳細的處理過程

選擇參數:

-S "-S<字尾備份字符串> "或 “–suffix=<字尾備份字符串>”
-V “-V<備份方式>“或”–version-control=<備份方式>”
–help 顯示幫助信息
–version 顯示版本信息

2 實例

初始目錄和文件
在這裏插入圖片描述

2.1 創建文件軟鏈接

給test_size創建一個軟連接test_size_ln,可配置目錄。

ln -s test_size test_size_ln

在這裏插入圖片描述
通過ll或ls -l命令查看詳細的文件資料,test_size_ln -> test_size即表示test_size_ln是test_size的軟連接。

2.2 創建文件硬鏈接

ln test_size test_size_ln_hard

在這裏插入圖片描述

2.3 創建文件夾軟鏈接

ln -s demo demo_ln

在這裏插入圖片描述
注意:鏈接目錄時,別名不能是已經存在的目錄名,否則鏈接功能失效,下圖紅色表示異常。
在這裏插入圖片描述

2.4 創建文件夾硬鏈接

不允許將硬鏈接指向目錄。

2.5 修改文件/文件夾軟鏈接

ln -s test_size test_size_ln
ln -snf ./demo/test_charType ./test_size_ln

在這裏插入圖片描述

2.6 刪除文件/文件夾軟鏈接

注意是要刪除軟鏈接,但不刪除實際數據。

刪除軟鏈接文件

rm test_size_ln
rm test_size_ln_hard

刪除軟鏈接路徑

rm demo_ln

在這裏插入圖片描述
注意刪除軟鏈接路徑下文件,會將原路徑下文件一併刪除

rm -rf demo_ln/*

在這裏插入圖片描述

2.7 鏈接後刪除和重建源文件

https://www.cnblogs.com/zhongbokun/p/10147998.html#i
在這裏插入圖片描述
說明:
源文件被刪除後,並沒有影響硬鏈接文件;軟鏈接文件在centos系統下不斷的閃爍,提示源文件已經不存在。
重建源文件後,軟鏈接不在閃爍提示,說明已經鏈接成功,找到了鏈接文件系統;重建後,硬鏈接文件並沒有受到源文件影響,硬鏈接文件的內容還是保留了刪除前源文件的內容,說明硬鏈接已經失效。

3 PS備註

第一:軟鏈接 前面是 l 開頭的(link),而硬鏈接是 - 開頭,表示文件

第二:軟鏈接所有者和所屬組具有全部操作的權限,rwxrwxrwx;而硬鏈接不是。也就是軟鏈接的前面都是 lrwxrwxrwx

第三:軟鏈接類似與 windows 的快捷方式,有一個明顯的箭頭指向,而指向的是源文件

第四:硬鏈接文件除了文件名與源文件不一樣,其餘所有信息都是一樣的。類似於 cp 複製操作。但是又和複製不一樣,硬鏈接可以同步更新。

第五:通過 ls -i 操作,來查看 文件的 i 節點。發現硬鏈接和源文件的 i 節點是相同的,而軟鏈接與源文件的 i 節點是不同的

第六:不允許將硬鏈接指向目錄;不允許跨分區創建硬鏈接

4 參考資料

https://www.runoob.com/linux/linux-comm-ln.html
http://c.biancheng.net/view/740.html
https://blog.csdn.net/weixin_42293718/article/details/80470093
https://www.cnblogs.com/zhongbokun/p/10147998.html#i

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章