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

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

1
задан 24 April 2015 в 21:51
2 ответа

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

find /some/path -mount -exec chgrp groupname {} +
1
ответ дан 3 December 2019 в 18:40

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

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

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

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

shopt -u extglob

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

2
ответ дан 3 December 2019 в 18:40

Теги

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