Как скопировать файлы и одновременно изменить права и разрешения
В этом кратком руководстве описывается, как копировать файлы и одновременно изменять права и разрешения из командной строки в Unix-подобных операционных системах. Обычно мы используем команду «cp» для копирования файлов из одного места в другое. Затем мы используем команды «chmod» и «chown» для изменения прав доступа и прав собственности на файл, соответственно. Тем не менее, мы можем объединить все эти задачи в одну команду и получить тот же результат, вместо запуска трех последовательных команд. Это может быть полезно, когда вы хотите делать это на регулярной основе или внутри скрипта.
Рассмотрим следующий пример.
Чтобы скопировать файлы и изменить права доступа и права собственности, мы делаем следующее:
$ cp /dir1/file1 /dir2 $ chmod 775 -R /dir2 $ chown -R newowner:newgroup /dir2/file1
Однако вам не нужно использовать три команды для этой простой задачи. Мы можем сделать это с помощью одной команды. В этом случае на понадобится всего одна команда - «install» .
Я думал, что команда «install» предназначена для установки программ. Но я был неправ! Команда «install» используется для копирования файлов в выбранное вами место назначения и установки атрибутов. Команда является частью GNU coreutils, поэтому она входит по умолчанию во все дистрибутивы Linux.
Теперь попробуем изменить права доступа и права собственности на файл во время копирования.
$ sudo install -C -m 775 -o newowner -g newgroup /dir1/file1 /dir2
Вышеприведенная команда скопирует файл file1 из каталога /dir1 в каталог /dir2, изменит разрешения файла на 775, владельца на newowner и группу на newgroup.
Давайте разложим по полочкам вышеприведенную команду и посмотрим, что делает каждая часть команды.
-C, (–compare) сравнивать каждую пару файл источника и назначения, и, в некоторых случаях, вообще не изменять файл назначения
-m, (–mode) устанавливать режим разрешений (как chmod)
-o, (–owner) устанавливать владельца
-g, (–group) устанавливать группу пользователей
Более детально с аргументами команды можно ознакомиться в man
$ man install
Теперь вы знаете, как копировать файлы и одновременно изменять их права собственности, права доступа.