Удалить папки, которые соответствуют имени в другом пути

Удалить папки, которые соответствуют имени в другом пути

У меня в этой ситуации есть 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.

Связанный контент