В OS X я пытаюсь объединить следующие две команды в одну команду в сценарии bash, чтобы find
работал только один раз. Файлы, используемые find, содержат пробелы и специальные символы.
Команда 1:
find /path -print0 | tr '\n' '\0' | xargs -0 chmod -N
Команда 2:
find /path -print0 | tr '\n' '\0' | xargs -0 xattr -c
Обе указанные выше команды работают.
Я понимаю из Заставить xargs выполнить команду один раз для каждой строки ввода ', что несколько команд могут быть выполнены через xargs
с чем-то вроде
find /path -print0 | xargs -0 -I '{}' sh -c 'command1 {} ; command2 {}'
Однако моя попытка объединить команды с
find /path -print0 | tr '\n' '\0' | xargs -0 -I '{}' sh -c 'chmod -N {} ; xattr -c {}'
приводит к множественным ошибкам для каждого файла и папки в /path
, например
chmod: Failed to clear ACL on file {}: No such file or directory
xattr: No such file: {}
sh: -c: line 0: syntax error near unexpected token `('
Кто-нибудь может помочь? Заранее спасибо.