2009-07-15 17 views
12

Ich habe ein Verzeichnis mit Dateien und Verzeichnissen darin. Was ich will, ist rsync Kopie von mehreren Ordnern aus diesem Verzeichnis. Zum Beispiel können sagen, ich habe dies:rsync, um nur bestimmte Ordner zu kopieren

/home/user 
-- drwxr-xr-x folderA 
-- drwxr-xr-x folderB 
-- drwxr-xr-x folderC 
-- -rw-r--r-- file.1 
-- -rw-r--r-- file.2 

Ich möchte ordnerA und folerB kopieren rsync. Ich habe Datei erstellt rsync_folders.txt

+ /folderA/** 
+ /folderB/** 

Mein Problem ist, dass rsync immer Datei kopiert, wenn sie Muster entspricht auszuschließen. Aber wenn ich hinzufügen

wird nichts kopiert, weil Rsync zuerst gegen Ausschlussmuster übereinstimmt.

Irgendwelche Ideen?

Hinweis: Ich kann nicht alle Ordner und Dateien auflisten, die ich ausschließen möchte. Es wird sich von Zeit zu Zeit ändern.

+1

Was ist das Problem mit rsync --recursive folderA folderB folderC Ziel? – p00ya

+0

Kein Problem. Mach es eine Antwort und ich werde es akzeptieren :). –

+0

beachten Sie, dass in den letzten Versionen von rsync/***, was Sie wollen ... –

Antwort

14

Verwenden Sie entweder oder legen Sie alle Ordner, die Sie rsync in einer Textdatei (jeder Ordner in einer separaten Zeile) und verwenden Sie rsync -arv --files-from=sources.txt dst.
Beachten Sie, dass standardmäßig --recursive bedeutet, aber nicht, wenn --files-from verwendet wird, so dass in diesem Fall -r explizit angegeben werden muss.

+0

Das Setzen aller Ordner in die Testdatei funktioniert nicht, da ich bereits mehrere Regeln zum Ausschließen und Einschließen verwende. rsync src1 src2 src3 funktioniert für mich. –

+0

@http: //stackoverflow.com/users/4052/georgy-bolyuba ... Ich schrieb ein Skript. Vereinfacht gesagt, habe ich eine Funktion gemacht, die den 'rsync'-Befehl selbst ausführt und:' scr'- und 'dst'-Ordner, die ich aufruft, wenn das Skript" argument "(s) die erforderlichen _rules_ erfüllt. – will

Verwandte Themen