Удалить -print
, убежать ( and )
и добавить пространство после{}
find . -type d \( -path ./node_modules \) -prune -o -exec chmod 644 {} \;
Я хотел бы изменить все папки и подпапки в определенной папке, за исключением того, что я хочу исключить одну папку (и все подпапки, которые она содержит).
Пока у меня есть взлом следующих решений от StackOverflow:
Вот что я придумала до сих пор:
находить . -type d (-path ./node_modules) -prune -o -print -exec chmod 644 {} \;
Проблема с или без -print
я получаю следующую ошибку:
найти: отсутствует аргумент `-exec '
Следующая строка содержит ожидаемые результаты, из которых мне нужно -exec chmod 644{}\;
прочитать:
находить . -type d (-path ./node_modules) -prune -o -print
Чего мне не хватает в этой строке для передачи данных -exec
?
Удалить -print
, убежать ( and )
и добавить пространство после{}
find . -type d \( -path ./node_modules \) -prune -o -exec chmod 644 {} \;
Поработав, я обнаружил, что у меня работает следующее:
find . -not -path "*/node_modules*" -type f -exec chmod 644 {} \;
find . -not -path "*/node_modules*" -type d -exec chmod 755 {} \;