Поиск по сайту:

Копируйте файлы и одновременно меняйте владельца и разрешения

В этом кратком руководстве описывается, как копировать файлы и одновременно менять владельца и разрешения из командной строки в 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 sk -g ostechnix /dir1/file1 /dir2

Приведенная выше команда скопирует файл /dir1/file1 в /dir2, изменит права доступа к файлу на 775, а владельца на sk и группу ostechnix.

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

  • -C, (--compare): сравнить каждую пару файлов источника и назначения, а в некоторых случаях вообще не изменять место назначения.
  • -m, (--mode): установить режим разрешений (как в chmod).
  • -o, (--owner): установить владельца пользователя.
  • -g, (--group): установить владельца группы.

Более подробную информацию можно найти на страницах руководства.

man install

Рекомендуется прочитать:

  • Как сохранить право собственности и права доступа к файлам при копировании файлов или каталогов
  • ExplainShell: узнайте, что делает каждая часть команды Linux

И это все. Надеюсь это поможет.

Статьи по данной тематике