Команда Cp в Linux (копирование файлов)

При работе в системах Linux и Unix копирование файлов и каталогов — одна из самых распространенных задач, которые вы выполняете ежедневно.

cp — это утилита командной строки для копирования файлов и каталогов в системах Unix и Linux.

В этой статье мы объясним, как использовать команду cp .

Как использовать команду cp

Общий синтаксис команды cp следующий:

cp [OPTIONS] SOURCE... DESTINATION

SOURCE может содержать один или несколько файлов или каталогов в качестве аргументов, а аргумент DESTINATION может быть одним файлом или каталогом.

  • Когда аргументы SOURCE и DESTINATION являются файлами, команда cp копирует первый файл во второй. Если файл не существует, команда создает его.
  • Если SOURCE имеет несколько файлов или каталогов в качестве аргументов, аргумент DESTINATION должен быть каталогом. В этой ситуации файлы и каталоги SOURCE перемещаются в каталог DESTINATION .
  • Если аргументы SOURCE и DESTINATION являются каталогами, команда cp копирует первый каталог во второй.

Для копирования файлов и каталогов у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог. В противном случае отображается ошибка отказа в разрешении.

Копирование файлов с помощью команды cp

Самый простой сценарий использования cp — это копирование файла в текущий рабочий каталог . Например, чтобы скопировать файл с именем file.txt в file_backup.txt вы запустите следующую команду:

cp file file_backup

или же

cp file{,_backup}

Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к целевому каталогу.

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

В следующем примере мы file.txt файл file.txt в file.txt /backup :

cp file.txt /backup

Если вы хотите скопировать файл под другим именем, вам необходимо указать желаемое имя файла. Приведенная ниже команда скопирует файл в указанный каталог как new_file.txt .

cp file.txt /backup/new_file.txt

По умолчанию, если целевой файл существует, он перезаписывается. Параметр -n указывает cp не перезаписывать существующий файл.

Чтобы заставить cp запрашивать подтверждение, используйте параметр -i .

cp -i file.txt file_backup.txt

Если вы хотите скопировать файл, только если он новее, чем место назначения, используйте параметр -u :

cp -u file.txt file_backup.txt

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

cp -p file.txt file_backup.txt

Другой вариант, который может быть полезен, — это -v , который указывает cp печатать подробный вывод:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

Копирование каталогов с помощью команды cp

Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r .

В следующем примере мы копируем каталог Pictures в Pictures_backup :

cp -R Pictures Pictures_backup

Приведенная выше команда создает целевой каталог и рекурсивно копирует все файлы и подкаталоги из источника в целевой каталог.

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

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

cp -RT Pictures Pictures_backup

Другой способ скопировать только содержимое каталога, но не сам каталог, — использовать подстановочный знак ( * ). Недостаток следующей команды является то , что он не копирует скрытые файлы и каталоги (те , начиная с точкой . ):

cp -RT Pictures/* Pictures_backup/

Все параметры, которые мы использовали в предыдущем разделе при копировании файлов, также могут быть использованы при копировании каталогов. Основное отличие в том, что при копировании каталогов. вам всегда нужно использовать параметр -R .

Копировать несколько файлов и каталогов

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

cp file.txt dir file1.txt  dir1

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

Выводы

Копирование файлов и каталогов с помощью команды cp — простая задача. Для получения информации обо всех доступных параметрах cp введите в терминале man cp .

Для копирования файлов по сети используйте утилиты rsync и scp .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

3 комментария
  1. 27.02.2023
  2. 09.04.2023

Оставьте комментарий