rstyncをNSTaskでラップし、除外オプションを使用して隠しファイル(ドットファイル)を同期させようとしています。私は、これはコマンドラインで動作します知っている:rsync NSTaskメソッドで除外オプションをラップする
NSTask *rsyncTask;
rsyncTask = [[NSTask alloc] init];
[rsyncTask setLaunchPath: @"/usr/bin/rsync"];
NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"-az", @"--exclude='.*'", source, destination, nil];
[rsyncTask setArguments: arguments];
を物事が正常に動作除外引数なしで次のように
rsync -az --exclude='.*' source destination
は私のNSTaskが定義されています。実際には、上の定義では正常に動作しますが、隠しファイルは引き続きコピーされます。
私が試してみました:
- は、バックスラッシュ
- を使用して--exclude =ちょうどないエスケープバックスラッシュをエスケープするために2つのバックスラッシュを使ってエスケープされた二重引用符
- を使用して、単一のダニをエスケープ - 別の配列要素を除いて@ "'。*'"
何も結果が得られないようです。
恐ろしい!それがそれでした。ありがとう! – Wilersh
同様の理由で、同じ変更を加えた1つの引数を引き続き渡すこともできます。元のコマンドラインでは、一重引用符を使用してシェルからglobパターンを保護していました。シェルで作業しているわけではないので、一重引用符で保護する必要はありません。一重引用符で取り除く必要はありません。したがって、最初の場所に置いてください。 '@" - exclude =。* "' 。 –