NSTask で rsync をラップし、exclude オプションを使用して隠しファイル (ドット ファイル) を同期させようとしています。これはコマンドラインで機能することを知っています:
rsync -az --exclude='.*' source destination
私の 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];
除外引数がなければ、問題なく動作します。実際、上記の定義で問題なく動作しますが、隠しファイルは引き続きコピーされます。
私が試してみました:
- バックスラッシュで単一の目盛りをエスケープする
- エスケープされた二重引用符の使用
- エスケープするバックスラッシュをエスケープするために 2 つのバックスラッシュを使用する
- --exclude= を使用せず、@"'.*'" である別の配列要素で --exclude のみを使用する
私が望む結果が得られるものは何もないようです。
どんな提案でも大歓迎です。