Как изменить разрешения в Linux

3

Как настроить все файлы * .java в текущем каталоге и все его подкаталоги, чтобы иметь разрешение на чтение для всех пользователей?

Я также хочу установить все файлы размером не менее 1 килобайта в текущем каталоге и во всех подкаталогах иметь группу администраторов.

user 99572 is fine
источник
2
Голосование за переход на Super User, это не вопрос программирования.
unwind

Ответы:

5

Альтернатива: Чтобы установить разрешение на чтение для всех файлов .java в текущем каталоге, используйте эту команду:

chmod -R 444 *.java

Чтобы установить все файлы размером не менее 1 килобайта в текущем каталоге и все подкаталоги иметь группу администраторов.

find /yourdirectorypath -size +1k -exec chgrp admin {} \;

Замечания: «-R» обозначает рекурсив, который также будет охватывать ваши подкаталоги

ricbax
источник
Я не думаю, что ты хочешь -R на chgrp команда с find делает рекурсию для вас.
Dennis Williamson
Деннис - если вы заметили, он использует только -R на chmod, а не на chgrp. Он не использует find в chmod, потому что он имеет встроенную рекурсию.
CarlF
@ CarlF: Читая историю изменений, кажется, что ответ был отредактирован Когда Деннис прокомментировал, chgrp был -R в теме.
Thanatos
Я должен был указать это изменение здесь в комментариях, но я стал занятым.
ricbax
2

Как настроить все файлы * .java в текущем каталоге и все его подкаталоги, чтобы иметь разрешение на чтение для всех пользователей?

В bash ≥4.0 и zsh:

chmod a+r ./**/*.java

В любой POSIX-совместимой системе (то есть в любом неантикварном варианте Unix и более):

find . -name '*.java' -exec chmod a+r {} +

Установите все файлы размером не менее 1 килобайта в текущем каталоге и всех подкаталогах, чтобы иметь группу администраторов.

В зш:

chgrp admin ./**/*(.L+1023)

В любой POSIX-совместимой системе:

find . -type f -size +1023c -exec chgrp admin {} +
Gilles
источник
1

Используйте find и xargs

find . -name \*.java | xargs chmod o+r

или же

find . -name \*.java -print0 | xargs -0 chmod o+r

Вторая версия обрабатывает пробелы в именах файлов или каталогов.

Возможно, вам также потребуется исправить права доступа к каталогу.

find . -type d -print0 | xargs -0 chmod o+rx

Вы можете избежать обновления прав, которые уже верны. Проверьте справочную страницу для поиска и просмотра раздела о разрешениях.

BillThor
источник
Вместо использования xargs используйте более простой, надежный и POSIX-совместимый find . -type d -exec chmod o+r {} +,
Gilles
0

Чтобы установить разрешение на чтение для всех файлов .java в текущем каталоге, используйте эту команду

chmod +r *.java
Tobias 'Schmidi' Schmid
источник
Заданный вопрос о подкаталогах, который этот ответ не охватывает.
CarlF