При работе в системах 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 утилиту.