Ich versuche, Rsync in NSTask zu umbrechen und die Ausschlussoption zu verwenden, um versteckte Dateien (Dot-Dateien) nicht zu synchronisieren. Ich weiß, das in der Befehlszeile funktioniert:Wrapping ausschließen Option in einer rsync NSTask-Methode
rsync -az --exclude='.*' source destination
Mein NSTask ist wie folgt definiert:
NSTask *rsyncTask;
rsyncTask = [[NSTask alloc] init];
[rsyncTask setLaunchPath: @"/usr/bin/rsync"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"-az", @"--exclude='.*'", source, destination, nil];
[rsyncTask setArguments: arguments];
Ohne ausschließen Argument Dinge gut funktionieren. In der Tat funktionieren die Dinge gut mit der obigen Definition, aber versteckte Dateien werden immer noch kopiert.
Ich habe versucht:
- die einzelnen Zecken mit einem Backslash
- mit entkam doppelten Anführungszeichen
- mit zwei umgekehrten Schrägstrichen dem entweichende Backslash
- nicht mit --exclude = sondern nur zu entkommen --exclude mit einem separaten Array-Element, das ist @ "'. *'"
Nichts scheint die Ergebnisse zu bekommen, die ich will .
Alle Vorschläge willkommen.
Super! Das hat es getan. Vielen Dank! – Wilersh
Sie können auch weiterhin das einzelne Argument mit der gleichen Änderung aus dem gleichen Grund übergeben. In der ursprünglichen Befehlszeile verwendeten Sie einfache Anführungszeichen, um das Glob-Muster vor der Shell zu schützen, die darauf reagierte, indem sie die einfachen Anführungszeichen strich und nichts mehr tat. Da Sie jetzt nicht durch eine Shell arbeiten, brauchen Sie nichts mit einfachen Anführungszeichen zu schützen und nichts, um sie zu entfernen, also sollten Sie sie einfach weglassen: '@ '- exclude =. *" ' . –