При работе в системах 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
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
LIK
K
sdsad
sacsv