Löschen Sie Ordner, deren Namen in einem anderen Pfad übereinstimmen

Löschen Sie Ordner, deren Namen in einem anderen Pfad übereinstimmen

Ich habe in dieser Situation 2 Ordner /ParentFolder/FolderName/Files.mp4und /Mount/FolderName/Files.mp4.

Im Wesentlichen /ParentFoldermuss alles in alle Ordner mit dem gleichen Namen in ersetzen /mount. Ich muss ACDCLI für die eigentliche Kopie verwenden, also muss ich diese zuerst entfernen, indem ich einen beliebigen Ordnernamen aus /ParentFolder/*und aufruferm -rf /mount/"FolderName"

Wenn es nur ein Ordner wäre, wäre es einfach, aber ich weiß nicht genau, wie ich es sagen soll: Alle Ordnernamen aus X abrufen und löschen, wenn sie in Y vorhanden sind.

Antwort1

Das folgende Bash-Skript sollte das tun, was Sie beschreiben. Sie sollten echobeim ersten Ausführen ein vor rmdas setzen, um sicherzugehen, dass es das Erwartete tut.

#!/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

Geben Sie dem Skript einen passenden Namen wie acd_prepund verwenden Sie , chmod +x acd_prepum es ausführbar zu machen. Für die Beispielordner in der Frage würden Sie das Skript dann als ausführen acd_prep /ParentFolder /Mount.

verwandte Informationen