
Мне нужно изменить структуру подпапок, которые содержат больше подпапок и, естественно, файлов.
Теперь мне нужно изменить права доступа (владелец:группа, на данный момент нет acl) к этой полной структуре таким же образом. Только я хочу 775 для папок, но 664 для файлов. Как мне этого добиться? man chown
похоже, не дает решения, поэтому я подумал о канале find
и chown
смог это сделать. Мои знания о каналах довольно базовые. Я думаю, вы даете команду и отправляете вывод этой команды через вторую команду.
find -type d | chmod -R 775 *
это мое предположение, но не уважает вывод моей find
команды. Вероятно, '*' в команде chown переопределяет вывод find
чего-то
есть идеи, как это изменить в мою пользу?
решение1
Неиспользуйте -R
флаг с chmod
, что делает его рекурсивным (применимым ко всем папкам и файлам, содержащимся в аргументах). Используйте:
find . -type d -exec chmod 775 {} +
решение2
Обновление: Я неправильно понял, видите, @muru не использует -R Это может сработать:
chmod 775 $(find -type d)
Это называетсязамена команды