我正在尝试将 rsync 包装在 NSTask 中并使用排除选项来不同步隐藏文件(点文件)。我知道这适用于命令行:
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];
如果没有排除参数,事情就可以正常工作。事实上,上面的定义一切正常,但隐藏文件仍然被复制。
我努力了:
- 用反斜杠转义单个刻度
- 使用转义的双引号
- 使用两个反斜杠来转义转义的反斜杠
- 不使用 --exclude= 而只是 --exclude 使用单独的数组元素 @"'.*'"
似乎没有得到我想要的结果。
欢迎任何建议。