2016-07-08 30 views
-1

Ich möchte nur neue oder geänderte Dateiliste mit wenigen Filtern auf Ergebnis erhalten. Meine alle neuen oder geänderten Dateien sind:rsync include-from Dateirekursion

>f+++++++++ dsadcache.txt 
>f+++++++++ root.svn 
>f+++++++++ txt-file-in-root.txt 
>fcsT...... wp-config.php 
cd+++++++++ cache/ 
>f+++++++++ cache/fileincac.txt 
>f+++++++++ cache/fileincache.txt 
>f+++++++++ wp-content/inside.svn 
>f+++++++++ wp-content/inside.txt 
>f+++++++++ wp-content/object-cache.php 

Endergebnis sollte wie folgt aussieht:

>f+++++++++ txt-file-in-root.txt 
>fcsT...... wp-config.php 
>f+++++++++ wp-content/inside.txt 

Wenn ich versuche schließen-aus-Datei mit dieser Regeln:

- *cache* 
+ *.html 
+ *.txt 
+ *.js 
+ *.php 
+ *.jpg 
+ *.jpeg 
+ *.png 
+ *.bmp 
+ *.gif 
+ *.tif 
+ *.tiff 
+ *.ico 
+ *.json 
+ *.xml 
- * 

Filter Arbeit aber das Ergebnis ist nicht rekursiv

>f+++++++++ txt-file-in-root.txt 
>fcsT...... wp-config.php 

fehlt:

>f+++++++++ wp-content/inside.txt 

Mein Befehl lautet:

rsync -nrci --include-from="file" source/ destination 

EDIT:

Lassen Sie mich die Gewinn Antwort erklären:

Hier ist die Reihenfolge der Pfade rsync-Prozess:

dsadcache.txt 
txt-file-in-root.txt 
cache/ 
cache/fileincac.txt 
cache/fileincache.txt 
wp-content/ 
wp-content/inside.txt 
wp-config.php 

Ohne

einschließlich
filter='+ */' 

Verzeichnisse

cache/ 
wp-content/ 

sind ausgeschlossen.

Antwort

1

Im rekursiven Modus ruft rsync Unterverzeichnisse von oben nach unten auf, sodass wp-content zuerst mit Ihren Regeln verglichen wird, wenn rsync die oberste Ebene Ihres Baums überprüft. Da es kein Einschlussmuster gibt, das mit diesem Verzeichnis übereinstimmt, wird es durch die generische Ausschlussregel - * gelöscht.

Gemäß der rsync-Manpage ist ein Weg, Ihr Ziel zu erreichen, ein + */ irgendwo vor der Ausschlussregel zu platzieren, so dass Unterverzeichnisse während rekursiver Operation enthalten sind.

+0

Überprüfen Sie meine Bearbeitung, ist das der richtige Weg der Verarbeitung? :) –

+0

@NovkovskiStevoBato Ich habe gerade wp-content/als ein ausgeschlossenes Verzeichnis in Ihrer Erklärung hinzugefügt (Peer Review steht noch aus). Ansonsten sieht es für mich richtig aus. – coolparadox