刪除不同路徑中名稱相符的資料夾

刪除不同路徑中名稱相符的資料夾

在這種情況下我有 2 個資料夾,/ParentFolder/FolderName/Files.mp4並且/Mount/FolderName/Files.mp4.

本質上, 中的任何內容都/ParentFolder需要替換 中的任何同名資料夾/mount。我必須使用 ACDCLI 來取得實際副本,因此我需要先透過呼叫/ParentFolder/*和中的任何資料夾名稱來刪除它們rm -rf /mount/"FolderName"

如果是一個資料夾很容易,但我不知道怎麼說,從 X 中獲取所有資料夾名稱,如果它們存在於 Y 中,則將其刪除。

答案1

以下 bash 腳本應該執行您所描述的操作。您可能需要在第一次運行它echo時在前面加上rm,只是為了確保它會按照您的預期運行。

#!/bin/bash

if test -d "$1"
then
    from="$1"
else
    echo "could not find source directory \`$1'" >&2
    exit 1
fi

if test -d "$2"
then
    to="$2"
else
    echo "could not find destination directory \`$2'" >&2
    exit 1
fi

for fromdir in "${from}"/*/
do
    todir="${to}${fromdir#"${from}"}"
    if test -d "${todir}"
    then
        rm -rf "${todir}"
    fi
done

將腳本命名為適當的名稱,例如acd_prep並使用chmod +x acd_prep它來使其可執行。對於問題中的範例資料夾,您可以將腳本運行為acd_prep /ParentFolder /Mount.

相關內容