Для всех, кто сталкивается с подобным вопросом, как исключить несколько файлов, оказывается, что вам нужен отдельный --exclude
для каждого файла / каталога, который вы хотите исключить. В командной строке шаблон --exclude={file1,dir1/dir2,file2,dir1/dir\ with\ spaces}
работает, но этот формат не подходит для NSTask. Для NSTask (swift) это будет:
task.arguments = ["-FLAGS", "--exclude", "file1", "--exclude", "dir1/dir2", "--exclude", "file2", "--exclude", "dir1/dir with spaces", "SRC", "DST"]
Также обратите внимание, что NSTask не требует пробелов для экранирования. Из docs , объект NSTask преобразует и путь, и строки в аргументах в соответствующие строки в стиле C (используя fileSystemRepresentation) перед передачей их задаче через argv []). Строки в аргументах не подвергнуться расширению оболочки, поэтому вам не нужно делать специальных кавычек, а переменные оболочки, такие как $ PWD, не разрешаются. "