Назад | Перейти на главную страницу

Как сменить группу, исключая каталог

Мы используем сегменты AWS S3, и когда вы пытаетесь выполнить рекурсивную chgrp, он работает в ведре S3 (по сути) бесконечно. Можно ли выполнить chgrp при исключении каталога?

Ответ - использование bash extglob, и работает здесь, как и многие другие функции Linux, которые принимают обозначение файлов в /directory/* форма.

Жадное изменение группы файлов в каталоге, исключая каталог, возможно, сначала повернув extglob on, а затем включив имя каталога, которое нужно исключить как таковое:

shopt -s extglob
chgrp /directory/!(exclude)

И когда вы закончите, выключите опцию с помощью -u флаг.

shopt -u extglob

Чтобы найти полезную публикацию в стеке, посмотрите "Как я могу использовать обратные или отрицательные подстановочные знаки при сопоставлении с образцом в оболочке unix / linux?"

Вы можете использовать GNU findвозможность не следовать по пути каталога в другую файловую систему:

find /some/path -mount -exec chgrp groupname {} +