Linux 系統(tǒng)中如何刪除軟連接
點(diǎn)擊參加51CTO網(wǎng)站內(nèi)容調(diào)查問卷
我們可以使用 ln 命令來創(chuàng)建軟連接,那么怎樣刪除呢?
Linux 中沒有用于刪除符號(hào)鏈接的特殊命令,不過可以使用 rm 命令,該命令主要用于刪除文件和目錄,如下:
rm symbolic_link_name
當(dāng)然也可以使用 unlink 命令,但是不要直接使用軟鏈接的名稱,因?yàn)樗粌H僅用于刪除鏈接,還會(huì)刪除文件。
unlink symbolic_link_name
下面我們來詳細(xì)看一下。
使用 rm 命令刪除符號(hào)鏈接
在 rm 命令后面提供鏈接路徑的名稱:
rm name_or_path_of_link
我們來看個(gè)具體例子,如下命令中列出當(dāng)前路徑中的文件:
$ ls -l
total 4708
-rw-rw-r-- 1 abhishek abhishek 4794657 Sep 27 20:36 export.json
-rw-rw-r-- 1 abhishek abhishek 311 Sep 22 12:19 line.txt
lrwxrwxrwx 1 abhishek abhishek 26 Oct 17 11:24 mylink -> ./Documents/sample-mark.md
-rw-rw-r-- 1 abhishek abhishek 106 Sep 27 20:39 redirects.json
-rw-r--r-- 1 abhishek abhishek 12817 Sep 22 12:28 sample.txt
上述列表中 mylink 為符號(hào)鏈接,大家可以看到其是以 l (表示鏈接)開頭,名稱顯示它指向的文件。
我們使用 rm 刪除它,并驗(yàn)證:
$ rm mylink
$ ls -l
total 4708
-rw-rw-r-- 1 abhishek abhishek 4794657 Sep 27 20:36 export.json
-rw-rw-r-- 1 abhishek abhishek 311 Sep 22 12:19 line.txt
-rw-rw-r-- 1 abhishek abhishek 106 Sep 27 20:39 redirects.json
-rw-r--r-- 1 abhishek abhishek 12817 Sep 22 12:28 sample.txt
如下圖所示,源文件仍然存在:
刪除多個(gè)鏈接
可以使用 rm 命令一次刪除多個(gè)符號(hào)鏈接:
rm symlink1 symlink2 symlink3
使用 unlink 命令刪除軟鏈接
刪除軟鏈接的另一種方法是使用 unlink 命令。這個(gè)命令乍聽起來好像只用于刪除鏈接,但其實(shí)它也可以刪除文件。使用方式如下:
unlink name_or_path_of_link
我們使用上面的例子,如下圖所示:
unlink 不能一次刪除多個(gè)鏈接。
刪除指向目錄的軟鏈接
我們可以創(chuàng)建指向文件的軟連接,也可以創(chuàng)建指向目錄的軟鏈接。刪除目錄需要使用 -r 選項(xiàng),但是刪除指向目錄的鏈接卻不需要使用 -r 選項(xiàng)。
使用方法與刪除文件鏈接的方法相同:
rm name_or_path_to_link_to_dir
刪除指向目錄的軟連接的時(shí)候,在目錄的末尾不要添加斜杠,否則會(huì)報(bào)錯(cuò):
$ rm link_to_dir/
rm: cannot remove 'link_to_dir/': Is a directory
下圖是一個(gè)刪除目錄軟鏈接的示例:
注意,盡量不要使用 -f 選項(xiàng)強(qiáng)制刪除指向目錄的鏈接,因?yàn)樗鼤?huì)刪除目錄的內(nèi)容。如下圖所示:
刪除硬鏈接
與軟鏈接不同,硬鏈接與原始文件幾乎無法區(qū)分,你只能通過 inode number 注意到它。
看下面的例子:
$ ls -li
total 4716
544057 -rw-rw-r-- 1 abhishek abhishek 4794657 Sep 27 20:36 export.json
544884 -rw-rw-r-- 2 abhishek abhishek 311 Sep 22 12:19 hard_link
544884 -rw-rw-r-- 2 abhishek abhishek 311 Sep 22 12:19 line.txt
1181365 drwxrwxr-x 2 abhishek abhishek 4096 Oct 17 12:33 my_dir
546419 -rw-rw-r-- 1 abhishek abhishek 106 Sep 27 20:39 redirects.json
刪除硬鏈接與刪除文件相同:
rm path_or_name_of_hard_link
刪除鏈接文件會(huì)怎樣呢?
實(shí)際上,幾乎沒有在刪除軟鏈接的同時(shí),也要?jiǎng)h除原始文件的場(chǎng)景和需求。當(dāng)然,如果有的話,你可以通過符號(hào)鏈接找到原始文件,然后刪除它。
rm "$(readlink '/path/to/link')" /path/to/link
注意,如果刪除源文件,但是沒有刪除軟鏈接,那么這個(gè)鏈接將會(huì)成為斷開的或懸空的鏈接。
雖然存在 unlink 命令,但是我建議使用 rm 命令來刪除符號(hào)鏈接。因?yàn)檫@個(gè)是我們都比較熟悉的命令,經(jīng)常使用它來刪除文件,當(dāng)然也可以用來刪除符號(hào)鏈接。
以上就是本次分享全部?jī)?nèi)容。