cp
Что делает команда cp в Linux
Команда cp в Linux используется для копирования файлов и каталогов в файловой системе. Это одна из самых часто применяемых утилит, особенно при работе в терминале. С помощью нее можно копировать одиночные файлы, целые директории, а также сохранять атрибуты и права доступа.
Синтаксис команды cp в Linux:
cp [опции] источник назначение
Например, чтобы скопировать файл file.txt в папку /home/user/backup, выполняется:
cp file.txt /home/user/backup/
Если нужно скопировать несколько файлов:
cp file1.txt file2.txt /home/user/backup/
Команда cp в Linux может работать как с относительными, так и с абсолютными путями. При копировании важно указывать точное местоположение назначения, иначе файлы могут быть перезаписаны.
Основные параметры команды cp в Linux
Понимание параметров помогает использовать команду cp в Linux более гибко. Ниже перечислены самые популярные и практичные ключи, которые применяются в повседневной работе.
Параметр -r (или —recursive)
Копирует каталоги рекурсивно, то есть со всем их содержимым:
cp -r /source/folder /destination/
Без этого параметра команда не сможет скопировать директорию, так как по умолчанию она работает только с файлами.
-v вместе с -r, чтобы видеть процесс копирования.Параметр -v (или —verbose)
Выводит подробную информацию о процессе копирования. Например:
cp -v file.txt /backup/
Результат:
'file.txt' -> '/backup/file.txt'
Это удобно для контроля, особенно при массовом копировании множества файлов.
Параметр -i (или —interactive)
Перед перезаписью существующих файлов утилита запрашивает подтверждение:
cp -i data.txt /backup/data.txt
Если файл уже есть, появится запрос:
cp: overwrite '/backup/data.txt'?
Пользователь сможет выбрать, перезаписывать или нет.
Параметр -u (или —update)
Копирует только те файлы, которые новее, чем существующие в целевой директории. Это особенно полезно при резервном копировании:
cp -u *.txt /backup/
Такой подход экономит время и снижает нагрузку на систему.
Параметр -p (или —preserve)
Сохраняет права доступа, временные метки и владельцев:
cp -p config.conf /backup/
После копирования файл сохранит исходные атрибуты, что важно для системных и конфигурационных файлов.
Параметр -a (или —archive)
Архивный режим объединяет несколько опций: -r, -p и -d. То есть копирование будет рекурсивным, с сохранением прав и символьных ссылок:
cp -a /etc /backup/
Это идеальный вариант для создания точной копии каталога с его структурой.
Параметр -f (или —force)
Принудительно перезаписывает файлы без подтверждения:
cp -f file.txt /backup/
Этот вариант удобен в автоматизированных скриптах, когда подтверждение не требуется.
Параметр —backup
Создает резервные копии при перезаписи:
cp --backup file.txt /backup/
Если в папке назначения уже есть файл с тем же именем, будет создана копия, например file.txt~.
Примеры использования команды cp в Linux
Чтобы освоить команду cp в Linux, полезно рассмотреть реальные сценарии.
Копирование одного файла
cp notes.txt /home/user/docs/
Результат — файл notes.txt появится в директории /home/user/docs/.
Копирование нескольких файлов
cp index.html style.css script.js /var/www/html/
Здесь три файла копируются в одну директорию веб-сервера.
Копирование каталога с подкаталогами
cp -r /var/log /mnt/backup/
Создает полную копию каталога /var/log вместе с его содержимым.
Копирование с сохранением структуры и прав
cp -a /etc/nginx /backup/configs/
Команда сохраняет все атрибуты, права и структуру конфигурационных файлов Nginx.
Копирование с подтверждением перезаписи
cp -i important.txt /backup/
Терминал запросит подтверждение, если файл уже существует.
Копирование только новых файлов
cp -u /source/*.log /backup/logs/
Только изменённые или новые .log файлы будут скопированы в /backup/logs.
Практические советы по работе с cp
-a и -v, чтобы видеть ход выполнения и быть уверенным в корректности копий.cp -av /home/user/docs /mnt/backup/
alias:
alias cp='cp -i'
Теперь при вводе cp по умолчанию будет срабатывать интерактивный режим с подтверждением.
Частые ошибки при использовании команды cp в Linux
- Отсутствие прав доступа.
Если вы получаете сообщение “Permission denied”, выполните копирование сsudo:sudo cp file.conf /etc/ - Неверный путь назначения.
Команда не создаёт автоматически каталоги. Если указанного пути нет, копирование не произойдет. Создайте папку заранее:mkdir -p /backup/logs && cp *.log /backup/logs/ - Забытый флаг -r при копировании папок.
Без-rкоманда выдаст ошибку:cp: -r not specified; omitting directory
Команда cp в Linux — незаменимый инструмент системного администратора и разработчика. Она проста, но при этом мощна, особенно в сочетании с другими утилитами командной строки. Освоив ключевые параметры и принципы работы, вы сможете эффективно управлять файлами, создавать резервные копии и автоматизировать процессы копирования в любых сценариях.