在这种情况下,我有 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
。