删除不同路径下名称匹配的文件夹

删除不同路径下名称匹配的文件夹

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

相关内容