首頁  >  文章  >  系統教程  >  Linux 系統中如何刪除軟連接

Linux 系統中如何刪除軟連接

WBOY
WBOY轉載
2024-02-11 15:00:14926瀏覽

在 Linux 系統中,符號連結(symbolic link,或簡稱 symlink)也稱為軟連結。它是一種特殊類型的文件,用作指向另一個文件的捷徑。

我們可以使用 ln 指令來建立軟連結。那麼如何刪除呢? Linux 系統中並沒有專門用於刪除符號連結的命令,但我們可以使用 rm 命令來刪除它。 rm 指令主要用於刪除檔案和目錄。

rm symbolic_link_name

當然也可以使用 unlink 命令,但不要直接使用軟鏈接的名稱,因為它不僅僅用於刪除鏈接,還會刪除文件。

unlink symbolic_link_name

下面我們來詳細看一下。

使用 rm 指令刪除符號連結

在 rm 指令後面提供連結路徑的名稱:

rm name_or_path_of_link

我們來看個具體例子,如下命令中列出目前路徑中的檔案:

$ 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 為符號鏈接,大家可以看到其是以 l (表示鏈接)開頭,名稱顯示它指向的文件。

我們使用 rm 刪除它,並驗證:

$ 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

如下圖所示,原始檔案仍然存在:

Linux 系统中如何删除软连接

刪除多個連結

可以使用 rm 指令一次刪除多個符號連結:

rm symlink1 symlink2 symlink3

使用 unlink 指令刪除軟連結

刪除軟連結的另一種方法是使用 unlink 指令。這個命令乍聽起來好像只用於刪除鏈接,但其實它也可以刪除文件。使用方式如下:

unlink name_or_path_of_link

我們使用上面的例子,如下圖:

Linux 系统中如何删除软连接

unlink 不能一次刪除多個連結。

刪除指向目錄的軟連結

我們可以建立指向檔案的軟連接,也可以建立指向目錄的軟連結。刪除目錄需要使用 -r 選項,但刪除指向目錄的連結卻不需要使用 -r 選項。

使用方法與刪除檔案連結的方法相同:

rm name_or_path_to_link_to_dir

刪除指向目錄的軟連接的時候,在目錄的末尾不要添加斜杠,否則會報錯:

$ rm link_to_dir/
rm: cannot remove 'link_to_dir/': Is a directory

下圖是一個刪除目錄軟連結的範例:

Linux 系统中如何删除软连接

注意,盡量不要使用 -f 選項強制刪除指向目錄的鏈接,因為它會刪除目錄的內容。如下圖所示:

Linux 系统中如何删除软连接

刪除硬連結

與軟連結不同,硬連結與原始檔案幾乎無法區分,你只能透過 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

刪除連結檔會怎麼樣呢?

實際上,幾乎沒有在刪除軟連結的同時,也要刪除原始檔案的場景和需求。當然,如果有的話,你可以透過符號連結找到原始文件,然後刪除它。

rm "$(readlink '/path/to/link')" /path/to/link

注意,如果刪除來源文件,但是沒有刪除軟鏈接,那麼這個連結將會成為斷開的或懸空的連結。

雖然存在 unlink 指令,但我建議使用 rm 指令來刪除符號連結。因為這個是我們都比較熟悉的指令,經常使用它來刪除文件,當然也可以用來刪除符號連結。

以上是Linux 系統中如何刪除軟連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lxlinux.net。如有侵權,請聯絡admin@php.cn刪除