Команда Cp в Linux (Копирование файлов)
Команда Cp в Linux (Копирование файлов)
Cp Command in Linux (Copy Files)
В этой статье мы объясним, как использовать cp команду.

При работе в системах Linux и Unix копирование файлов и каталогов является одной из самых распространенных задач, которые вы выполняете ежедневно.
cp
утилита командной строки для копирования файлов и каталогов в системах Unix и Linux
Как использовать 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
утилиту.