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

Команда 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 в каталог /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 .

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

CP- терминал

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *