ln命令可以生成軟連結和硬連結,也可叫做符號連結和實體連結。 有興趣深入理解的可以查閱相關文檔,一般的讀者只需記住以下幾點即可:
1.不管是軟連結還是硬連結都不會額外增加磁碟空間(雖然實際情況可能會多佔用1個block)2.軟連結會佔用1個inode,而硬連結不佔用inode(想深究的可以自行查閱,不深究的可以直接略過)3.硬連結不能跨文件系統,不能連結目錄(可以得出軟連結是可以的)。為了更好理解舉例如下:
硬連結:假設在當前目錄有文件名為linuxidc.jpg(大小為1M),現在為它創建硬連結linuxidc-h.jpg,那麼當前目錄就有了2個文件,這2個文件除了名字不一樣其他的一模一樣,但是佔用的實際磁碟空間還是只有1M,改變任何一個文件的內容另一個文件也會跟著改變;當你只刪除linuxidc.jpg或只刪除linuxidc-h.jpg時,文件內容都還在磁碟,只有同時刪除了這2個文件時才會真的徹底刪除該1M的佔用。
軟連結:假設在當前目錄有文件名為linuxidc.jpg(大小為1M),現在為它創建軟連結linuxidc-s.jpg,那麼當前目錄就有了2個文件,linuxidc-s.jpg是一個全新的文件大小為7bytes(等於linuxidc.jpg名稱佔用的字節數),它指向linuxidc.jpg(學過C語言的指針理解起來會很快);改變任何一個文件的內容另一個文件也會跟著改變,刪除linuxidc-s.jpg不影響linuxidc.jpg,但是刪除了linuxidc.jpg那麼tmp-s.jpg就會失效因為它找不到它指向的文件了 。
我相信通過上面例子的解釋,你應該可以自己辨別在哪些情況選擇哪種連結方式了吧。
###bash####常用命令選項#默認硬連結-s #軟連結-f #如果目標文件存在時,直接移除後再創建(危險)
例子:
###bash####為/root/linuxidc.jpg生成軟連結ln -s /root/linuxidc.jpg /tmp/linuxidc.jpg#為/root/dir目錄生成軟連結ln -s /root/dir /linuxidc/dir1#為/root/linuxidc.jpg生成硬連結ln /root/linuxidc.jpg /tmp/linuxidc.jpg
注意:
###bash####假設文件夾aaa下有10個文件ln -s aaa bbb #生成aaa的軟連結bbb#未來有一天當你想要刪除軟連結bbb#只要敲如下命令rm -f bbb#千萬別大意敲如下命令,這樣會把aaa裡面的10個文件刪除掉rm -rf bbb/ #在使用軟連接過程中,請使用絕對路徑,如果使用了想對路徑,可能會出現連接數過多錯誤。
原文來自:https://www.linuxidc.com/Linux/2019-09/160773.htm本文地址:https://www.linuxprobe.com/linux-ln.html編輯:周曉雪,審核員:逄增寶Linux命令大全:https://www.linuxcool.com/