Rm
rm 刪除目錄、任何符號連結和符號連結目標?
我有兩個目錄:
/all/origins/
&/all/links/
。in 中的所有內容都
links/
單獨指向 in 中的某些origins/
內容,但並非 in 中的所有內容origins/
都連結到 in 中links/
。(正方形、矩形和分類層次結構,明白了嗎?)這些是符號連結 (ln -s
),而不是硬連結。
links/
需要刪除1. 中的所有內容,以及 2. 中的符號連結目標origins/
(不知道它們是否在 中origins/
),以及 3.links/
目錄本身。我應該鍵入什麼***
rm
Unix 命令***來刪除整個links/
目錄和符號連結到的任何符號連結目標origins/
?我正在尋找類似的東西:
rm -R /all/links
或rm -r --follow-all-ln /all/links
。如果
rm
帶有參數的命令無法完成這項工作,請明確說明,因為這是我的偏好並隱含在標題中(Unix 和 Linux 是否可以通過rm
沒有do
循環的方式做到這一點?——只有當這不起作用時,請說明並解釋什麼do
循環。)
首先備份您的數據,以防出現問題。
我的理解是,您要刪除目錄的所有內容
/all/links/
以及該目錄內的連結指向的文件。沒有辦法使用您喜歡的簡單 Unix 命令來執行此操作,但它可以使用簡單的腳本。
#!/bin/bash for i in /all/links/* do rm "$(readlink -f $i)" rm "$i" done rmdir /all/links
正如您所說,裡面的所有文件
/all/links/
都是符號連結,因此無需檢查每個值i
是否為連結。