閱讀目錄
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