Утилиты CP и MV. Примеры использования

Работа с файлами рутинная работа любого пользователя на сервере. В системах Linux и Unix копирование, переименование, перемещение файлов является одной из самых популярных и востребованных задач.

В этой статье детально рассмотрим две утилиты с помощью каких можно легко выполнять эти действия.

Начнем с cp (от англ. copy) - эта утилита командной строки, выполняет функцию копирования файлов и директорий в пределах одного текущего сервера. P.S. Если Вам нужно скопировать файлы между 2 серверами можно ознакомиться с нашими статьями посвященными этому вопросу  здесь (об SCP) и здесь (об Rsync).

Общий синтаксис утилиты очень простой и легок в использовании:

cp ключи исходный_каталог  каталог_назначения

Где:

Пример, копируем  файл example1.txt в папку newdata. Ключ -v используем для более подробного вывода информации о состоянии копирования. При корректном вводе, на экран должно вывестись название файла и куда он скопировался.

Если нужно скопировать несколько файлов одновременно, просто перечисляем  через пробел (без запятой) файлы которые нужно скопировать:

cp ключи файл1 файл2 файл3  каталог_назначения

Пример, копируем два файла example1.txt и example2.txt в папку newdata.

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

- u (--update) - для копирования только файлов, которых нет в каталоге назначение и только измененных файлов (если эти файлы с этим название уже присутствуют  в каталоге назначения).

Пример, ранее на скрине выше мы копировали 2 файла в папку newdata, попробуем их скопировать снова (при условии что эти файлы не изменялись) и плюс файла которого нет в этой папке example3.txt.

Как видим был скопирован только файл  example3.txt. Эта функция очень полезная при копировании целых каталогов.

- R - для возможности копирования каталогов. 

Также часто используется вместе с ключом -r (--recursive)  - для рекурсивного копирования ( копируются все подкаталоги и все файлы в этих подкаталогах).

Пример, рекурсивно копируем папку data в папку newdata. Скопирована будет папка и все что в ней.

Чтобы скопировать только файлы и подкаталоги, но не саму папку (скопировано будет только то  что в папке), используйте ключ -T:

-p - ключ для сохранения атрибуты исходного каталога или файла, такие как временные метки, права доступа, идентификатор владельца и группы файлов, расширенные атрибуты и т.д.

-i  (--interactive) - выводит в терминал подтверждение пользователю перед перезаписью файла, который уже существует в каталоге назначения. Чтобы подтвердить просто вводим “y”, ввод другого любого символа отменит действие.

-v - как и писалось выше для более подробного вывода информации касательно выполнения команды.

Пример, введем команду с и без ключа.

Теперь перейдем к утилите  mv (от англ. move - перемещаться) - используется для перемещения и переименования файлов и каталогов. mv как и cp работает в пределах текущего сервера. Отличие в том что mv полностью транспортирует исходной файл в другое место, не оставляя за собою копию исходного файла.

Опишем синтаксис двух вариантов использования утилиты:

- перемещение файлов и каталогов

mv ключи исходный_каталог  каталог_назначения

Пример, перенесем два файла article.txt и newfile.txt в папку data. Аналогично как и в cp просто перечисляем файлы без запятой. Ключ -v используем для предоставления информации об перемещении файлов.

Если Вы хотите перенести исходный файл в уже существующий файл назначения, Вам выведется сообщение с подтверждением об перезаписании файла назначения, как с ключом -i для cp.

 

- переименование файлов и каталогов

Чтобы использовать утилиту mv для переименования используем также очень простой синтаксис:

mv ключи file1 file2

Где:

Пример, переименуем файл new.txt в new1.txt.

Утилита mv имеет много опций аналогичных с утилитой cp. Но при работе с этой утилитой ключи используются  не так часто как для cp. Среди опций можно выделить: -v, -u, -i.

 

Возникли вопросы?Команда ГиперХост всегда готова проконсультировать и помочь перенести файлы клиентов на наши сервера.