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