как сделать так, чтобы chown действовал только на папки, а не на файлы?

как сделать так, чтобы chown действовал только на папки, а не на файлы?

Мне нужно изменить структуру подпапок, которые содержат больше подпапок и, естественно, файлов.

Теперь мне нужно изменить права доступа (владелец:группа, на данный момент нет 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)

Это называетсязамена команды

Связанный контент