Ich habe das Internet vergeblich nach einer Antwort abgesucht... Ich versuche, dieses Ergebnis am Ziel zu erreichen
Media_Files
Web
Print
Meine Quelldateien sind
Media_Files
Assets
Web
Print
Wie kann ich den Ordner ausschließen, löschen, entfernen oder filtern, Assets
aber die Web/Print
Ordner behalten rsync
? Danke
Antwort1
Dazu müssen Sie zwei Schritte ausführen:
- Kopieren Sie alles außer
Media_Files/Assets
(vorausgesetzt, es befinden sich noch andere Dinge darunterMedia_Files
). - Kopieren
Media_Files/Assets/Web
.
Der erste Schritt kann erfolgen mit
rsync -av --exclude=/Assets/ Media_Files/ destination
Madia_Files
Dadurch wird das Verzeichnis (einschließlich Berechtigungen und anderer Metadaten) rekursiv (ausführlich) nach kopiert und eine Kopie von destination
erstellt (entfernen Sie das Ende des Quellpfads, um stattdessen zu erstellen ).destination
Media_Files
/
destination/Media_Files
Das Assets
direkt darunter liegende Verzeichnis Media_Files
würde aufgrund des Ausschlussmusters ignoriert werden /Assets/
.
Der zweite Schritt kann erfolgen durch
rysync -av Media_Files/Assets/Web destination
Das Fehlen von /
am Ende des Quellpfads bedeutet, dass Web
in eingefügt wird destination
.
Media_Files/Assets
Wenn Sie darüber hinaus noch weitere Dateien oder Verzeichnisse haben, Web
die Sie kopieren müssen, verwenden Sie stattdessen
rsync -av Media_Files/Assets/ destination
Dadurch wird alles Media_Files/Assets
(einschließlich des Web
Verzeichnisses und seines Inhalts) direkt in kopiert destination
.
Sie können stattdessen die folgenden beiden Schritte ausführen:
- Machen Sie
destination
einegenauKopie vonMedia_Files
, einschließlichMedia_Files/Assets
. - Verschieben Sie den Inhalt von manuell,
destination/Assets
den Sie verschiebendestination
und löschen möchtendestination/Assets
.
Zusamenfassend:
rsync -av Media_Files/ destination
mv -i destination/Assets/* destination
rmdir destination/Assets
Die letzten beiden Befehle würden so geändert, dass nur der Inhalt verschoben wird, destination/Assets
den Sie behalten möchten (z. B. destination/Assets/Web
), und der Rest entfernt wird (hier gehe ich davon aus, dass Sie alle sichtbaren Dateien und Verzeichnisse verschieben möchten und dass das Assets
Unterverzeichnis dadurch vollständig leer bleibt).
Antwort2
Sie können den folgenden Befehl verwenden, um das Ergebnis zu erzielen
rsync -azvP Mediendateien/Assets/Web-Mediendateien/