Linux命令
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/ 在使用軟連接過程中,請使用絕對路徑,如果使用了想對路徑,可能會出現連接數過多錯誤,
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新鏈接地址:https://www.linuxidc.com/Linux/2019-09/160773.htm
新聞熱點
疑難解答