Похожие вопросы

перенаправление netcat и tee через скрипт bash
Как переместить курсор командной строки на bash с помощью мыши
"- bash: ls: команда не найдена " ошибка в терминале на Mac. Как это исправить?
Bash на Ubuntu для Windows Зависает, пока я не нажму "enter"
Как впоследствии выполнить все команды в crontab?
Цикл по диапазону чисел для загрузки с помощью wget
Не удается ssh в AWS Ubuntu server из Bash на Windows
tar: не удается создать символическую ссылку: файл существует
Rsync копировать символические ссылки и исключить подпапку
Bash-перемещение файлов с одинаковым именем из нескольких каталогов в pwd
Как удалить все вхождения значений в одном списке из другого списка?
скорость bash-скрипт через SSH в фоновом режиме или на переднем плане
Использование параметров в скрипте bash с помощью curl
Использование wget для рекурсивного обхода сайта и загрузки изображений
Комментарии в многострочной команде bash

Как chmod все папки рекурсивно исключая все папки в определенной папке?

Я хотел бы chmod все папки и подпапки в пределах определенной папки, за исключением того, что я хочу, чтобы исключить одну папку (и все подпапки он содержит).

то, что я до сих пор, является взлом следующих решений от StackOverflow:

вот что я придумал пока:

найти . -тип D ( -путь ./node_modules)- prune-o-print-exec chmod 644 {};

проблема с или без -print появляется следующее сообщение об ошибке:

найти: отсутствует аргумент' - exec'

следующая строка имеет ожидаемые результаты, которые мне нужны -exec chmod 644{}; читать :

найти . -тип D ( -путь ./ node_modules ) - prune-o - print

что я упустил в этой строке передать данные -exec ?

5
задан Community
источник

2 ответов

удалить -print, escape ( and ) и добавить пробел после {}

find . -type d \( -path ./node_modules \) -prune -o -exec chmod 644 {} \;
1
отвечен Alex 2017-01-08 07:03:00
источник

после некоторой игры, я обнаружил, что для меня работает следующее:

chmod все файлы рекурсивно, исключая папку

find . -not -path "*/node_modules*" -type f -exec chmod 644 {} \;

chmod все папки рекурсивно, исключая папку

find . -not -path "*/node_modules*" -type d -exec chmod 755 {} \;
0
отвечен Kraang Prime 2017-01-08 07:06:09
источник

Другие вопросы bash chmod find linux permissions