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


3

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

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


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

Ответы:


5

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

chmod -R 444 *.java

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

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

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


Я не думаю, что ты хочешь -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 {} +

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

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


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

0

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

chmod +r *.java

Заданный вопрос о подкаталогах, который этот ответ не охватывает.
CarlF
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.