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

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

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

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

решение1

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

chmod -R 444 *.java

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

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

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

решение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 {} +

решение3

Используйте 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

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

решение4

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

chmod +r *.java

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