Как chmod все папки рекурсивно исключая все папки в определенной папке?
Я хотел бы chmod все папки и подпапки в пределах определенной папки, за исключением того, что я хочу, чтобы исключить одну папку (и все подпапки он содержит).
то, что я до сих пор, является взлом следующих решений от StackOverflow:
- Как установить chmod для папки и всех ее подпапок и файлов в терминале Linux Ubuntu?
- исключить каталог из найти . команда
вот что я придумал пока:
найти . -тип D ( -путь ./node_modules)- prune-o-print-exec chmod 644 {};
проблема с или без -print
появляется следующее сообщение об ошибке:
найти: отсутствует аргумент' - exec'
следующая строка имеет ожидаемые результаты, которые мне нужны -exec chmod 644{};
читать :
найти . -тип D ( -путь ./ node_modules ) - prune-o - print
что я упустил в этой строке передать данные -exec
?
2 ответов
после некоторой игры, я обнаружил, что для меня работает следующее:
chmod все файлы рекурсивно, исключая папку
find . -not -path "*/node_modules*" -type f -exec chmod 644 {} \;
chmod все папки рекурсивно, исключая папку
find . -not -path "*/node_modules*" -type d -exec chmod 755 {} \;
Другие вопросы bash chmod find linux permissions