Как запустить найти cmd с NSTask
Я пытаюсь заставить следующую команду find работать через NSTask:
find /Users/user/projects ! -path '*.git*' -ctime -1
Однако у меня возникли проблемы, чтобы заставить часть игнорирования пути работать. В терминале работает нормально. Я получаю измененные файлы за последние 24 часа, за исключением каталогов.git. При использовании NSTask каталоги.git не игнорируются, что приводит к слишком большому количеству положительных результатов...... Я использую следующие аргументы:
NSArray *args = @[@"/Users/user/projects", @"!", @"-path", @"'*.git*'", @"-ctime", @"-1"];
Кто-нибудь знает, что я делаю не так?
2 ответа
Я думаю, что вы должны заменить аргумент
@"'*.git*'"
от
@"*.git*"
в противном случае find игнорирует только файлы с именами '*.git*'
(Дословно). Обратите внимание, что оболочка удаляет одинарные кавычки при выполнении команды в Терминале.
Вы также можете найти это легче сделать.
NSString *argString = @"/Users/user/projects ! -path '*.git*' -ctime -1";
[nsTaskName setArguments: [argString componentsSeparatedByString: @" "]];
Когда вы отлаживаете свои аргументы в терминале, вы можете просто сделать копию и вставить и добавить 'find ' перед ним.