1. 程式人生 > >linux命令系列-ln(軟硬鏈接)

linux命令系列-ln(軟硬鏈接)

選項 目錄 增加 相關 當前目錄 roo 了吧 一個 10個

 linux命令
ln命令可以生成軟鏈接和硬鏈接,也可叫做符號鏈接和實體鏈接。 有興趣深入理解的可以查閱相關文檔,一般的讀者只需記住以下幾點即可: 
1.不管是軟鏈接還是硬鏈接都不會額外增加磁盤空間(雖然實際情況可能會多占用1個block) 
2.軟鏈接會占用1個inode,而硬鏈接不占用inode(想深究的可以自行查閱,不深究的可以直接略過) 
3.硬鏈接不能跨文件系統,不能鏈接目錄(可以得出軟鏈接是可以的)。

為了更好理解舉例如下: 
硬鏈接:假設在當前目錄有文件名為tmp.jpg(大小為1M),現在為它創建硬鏈接tmp-h.jpg,那麽當前目錄就有了2個文件,這2個文件除了名字不一樣其他的一模一樣,但是占用的實際磁盤空間還是只有1M,改變任何一個文件的內容另一個文件也會跟著改變,
當你只刪除tmp.jpg或只刪除tmp
-h.jpg時,文件內容都還在磁盤,只有同時刪除了這2個文件時才會真的徹底刪除該1M的占用。 軟鏈接:假設在當前目錄有文件名為tmp.jpg(大小為1M),現在為它創建軟鏈接tmp-s.jpg,那麽當前目錄就有了2個文件,tmp-s.jpg是一個全新的文件大小為7bytes(等於tmp.jpg名稱占用的字節數),它指向tmp.jpg(學過c語言的指針理解起來會很快), 改變任何一個文件的內容另一個文件也會跟著改變,刪除tmp-s.jpg不影響tmp.jpg,但是刪除了tmp.jpg那麽tmp-s.jpg就會失效因為它找不到它指向的文件了 。 我相信通過上面例子的解釋,你應該可以自己辨別在哪些情況選擇哪種鏈接方式了吧。 ###bash### #常用命令選項 #默認硬鏈接
-s #軟鏈接 -f #如果目標文件存在時,直接移除後再創建(危險) 例子: ###bash### #為/root/tmp.jpg生成軟鏈接 ln -s /root/tmp.jpg /tmp/tmp.jpg #為/root/dir目錄生成軟鏈接 ln -s /root/dir /tmp/dir1 #為/root/tmp.jpg生成硬鏈接 ln /root/tmp.jpg /tmp/tmp.jpg 註意: ###bash### #假設文件夾aaa下有10個文件 ln -s aaa bbb #生成aaa的軟鏈接bbb #未來有一天當你想要刪除軟鏈接bbb #只要敲如下命令 rm
-f bbb #千萬別大意敲如下命令,這樣會把aaa裏面的10個文件刪除掉 rm -rf bbb/   

linux命令系列-ln(軟硬鏈接)