Rm

rm 刪除目錄、任何符號連結和符號連結目標?

  • June 11, 2019

我有兩個目錄:/all/origins/& /all/links/

in 中的所有內容都links/單獨指向 in 中的某些origins/內容,但並非 in 中的所有內容origins/都連結到 in 中links/。(正方形、矩形和分類層次結構,明白了嗎?)這些是符號連結 ( ln -s),而不是硬連結。

links/需要刪除1. 中的所有內容,以及 2. 中的符號連結目標origins/(不知道它們是否在 中origins/),以及 3.links/目錄本身。

我應該鍵入什麼***rmUnix 命令***來刪除整個links/目錄和符號連結到的任何符號連結目標origins/

我正在尋找類似的東西:rm -R /all/linksrm -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是否為連結。

引用自:https://unix.stackexchange.com/questions/483555