Давайте посмотрим, как использовать команду chgrp с этими полезными примерами.
Это самое простое и, возможно, наиболее заметное использование chgrp. Чтобы изменить групповое владение файлом или каталогом, вы можете использовать команду chgrp следующим образом:
chgrp
Вы также можете изменить группу для нескольких файлов одновременно:
chgrp
Вам не обязательно находиться в том же каталоге, что и файл. Вы также можете указать абсолютный или относительный путь.
Ваши текущие привилегии имеют значение. Если вы попытаетесь изменить группы на admin или root, вам могут потребоваться привилегии суперпользователя. В таких случаях вы должны увидеть ошибку «operation not permitted».
По умолчанию, если вы используете команда chgrpс каталогом, это только изменяет группу каталога. Файлы и подкаталоги остаются неизменными.
Если вы хотите изменить группу всех файлов в каталогах и в в подкаталогах вы можете использовать рекурсивную опцию -R.
chgrp -R
Вы можете определить, была ли группа изменена с помощью команды «ls -l». Но что, если вы изменили группу на несколько файлов одновременно, используя рекурсивный вариант, который вы видели в предыдущем разделе?
команда chgrp предоставляет подробный режим, который сообщает вам, какие операции команда chgrpкоманда выполнена. Вы можете использовать опцию -v для запуска команды chgrp в подробном режиме.
chgrp -vR abhishek samplechanged group of 'sample/andreyex.txt' from sudo to abhishek group of 'sample/a.text' retained as abhishek changed group of 'sample/text/sherlock.txt' from sudo to abhishek changed group of 'sample/text' from sudo to abhishek changed group of 'sample' from sudo to abhishek
Вы можете заметить, что режим подробностей также указывает, осталась ли группа файлов одинаковой. Если вы хотите увидеть эту информацию только для файлов, для которых на самом деле произошли изменения в групповом владении, вы можете использовать опцию -c.
Представьте, что вы хотите изменить группу файла A так же, как файл B. Как вы это сделаете? Вы можете найти группу файлов B, а затем использовать команду chgrp с именем группы файла B.
Ну, это один из способов сделать это. Однако, команда chgrp предоставляет выделенный способ изменения группы на основе ссылочного файла вместо использования имени группы явно,
chgrp --reference=
Это особенно полезно, если вы пишете скрипт, где владельцы файлов должны быть изменены в качестве ссылки на файл.
По умолчанию, если вы используете команду chgrp с символической ссылкой, это владелец группы ссылочного файла, который изменяется, когда группа символической ссылки остается такой, какая есть.
Например, это состояние ссылки и связанный с ней файл:
ls -l andreyex.txt link.txt -r--r--rw- 1 abhishek abhishek 457 Aug 20 10:26 andreyex.txt lrwxrwxrwx 1 abhishek abhishek 10 Aug 21 11:35 link.txt -> andreyex.txt
Теперь, если вы измените группу символической ссылки следующим образом:
chgrp sudo link.txt
Группа символической ссылки останется неизменной, пока группа ссылочного файла будет изменена.
ls -l andreyex.txt link.txt -r--r--rw- 1 abhishek sudo 457 Aug 20 10:26 andreyex.txt lrwxrwxrwx 1 abhishek abhishek 10 Aug 21 11:35 link.txt -> andreyex.txt
Если вы хотите изменить только принадлежность группы к символической ссылке, а не самому ссылочному файлу, вы можете использовать опцию -h.
chgrp -h sudo link.txt
Тем не менее, мы не будем предлагать это, потому что в Linux разрешения на подключение не имеют смысла. Этот файл имеет значение.
Вы также можете использовать команду chown для изменения группы файлов, но изменение только группы через командe chown не является стандартной. Команда chgrp довольно проста, и рекомендуется использовать команду chgrp для изменения группы файлов или каталогов.
Надеюсь, вам понравились примеры команд chgrp. Если у вас есть вопросы или предложения или просто спасибо, пожалуйста, используйте поле комментариев ниже.