Гид по технологиям

Как копировать директории в Linux с помощью cp

4 min read Linux Обновлено 02 Jan 2026
Как копировать директории в Linux — cp и примеры
Как копировать директории в Linux — cp и примеры

Терминал с командами для копирования директорий в Linux

Кратко о cp

cp — команда, которая копирует файлы и каталоги. Она создаёт независимую копию содержимого. Определение: рекурсивное копирование — это перенос всей структуры папок и файлов внутри исходной директории.

Основной синтаксис:

cp [опции] <папка-источник> <папка-назначение>

Базовые примеры

Копировать одну папку в другое место:

cp <источник> <назначение>

Пример — копируем папку /random в /home:

cp /random /home

Если в /random есть подпапки и файлы, добавьте флаг -R:

cp -R /random /home
  • -R означает рекурсивно. Команда скопирует все вложенные каталоги и файлы.

Полезные опции cp

  • -R — рекурсивное копирование директорий.
  • -a — архивный режим: рекурсивно и сохраняет атрибуты (права, временные метки, символьные ссылки).
  • -v — показывать прогресс (verbose).
  • -u — копировать только если источник новее или файл отсутствует в месте назначения.
  • -i — спрашивать подтверждение при перезаписи.
  • -f — принудительно перезаписывать файлы.

Пример с сохранением атрибутов и подробным выводом:

cp -av /random /home

Копирование нескольких папок одновременно

Вы можете перечислить несколько источников, указав в конце целевую директорию:

cp <папка1> <папка2> <папка3> <назначение>

Пример:

cp -R /random /personal /content /home

Это скопирует три папки внутрь /home.

Частые ошибки и как их избежать

  • Пробелы в именах. Если имя содержит пробелы, берите его в кавычки:
cp -R "Мои документы" "/backup/Мои документы"
  • Перезапись. По умолчанию cp перезаписывает без предупреждения. Для безопасности пользуйтесь -i.
  • Права доступа. Если нет прав на чтение источника или запись в назначение, команда завершится с ошибкой. Используйте sudo только при необходимости.
  • Символьные ссылки. Для сохранения ссылок используйте -a, иначе cp развернёт ссылку в реальный файл.

Важно: всегда проверяйте путь назначения. Ошибка в пути может привести к потере времени или к нежелательной перезаписи.

Когда cp не подходит и альтернативы

  • Для синхронизации больших наборов данных или повторных копирований лучше использовать rsync. Он делает инкрементальные копии и поддерживает проверку контрольных сумм.
  • Для архивации и переноса по сети подойдёт tar в связке с ssh.
  • Для копирования только изменённых файлов используйте rsync с флагами -avz –delete по необходимости.

Пример быстрой проверки без копирования (dry-run) с rsync:

rsync -avzn /random/ /home/random/

Ментальная модель

Представьте cp как одноразовый снимок: он копирует текущее состояние каталога в новую папку. rsync — это синхронизатор, который сравнивает и обновляет только отличия. Для одного разового резервного копирования cp обычно достаточен; для повторных синхронизаций используйте rsync.

Контроль качества и критерии приёмки

  1. Количество файлов совпадает: число файлов в источнике и в копии должно быть одинаковым.
  2. Размеры совпадают: суммарный объём должен совпадать с точностью до политик файловой системы.
  3. Контрольные суммы: выборочно проверяйте md5/sha256 для критичных файлов.

Пример быстрой проверки количества файлов:

find /random | wc -l
find /home/random | wc -l

Критерии приёмки для задач резервного копирования:

  • Все файлы и папки перенесены.
  • Права и временные метки сохранены при необходимости.
  • Отсутствуют ошибки прав доступа в логах.

Плейбук на один случай использования

  1. Проверить свободное место: df -h.
  2. Проверить права доступа: ls -la /путь.
  3. Выполнить копирование с флагом -av и логом:
cp -av /random /backup 2>&1 | tee ~/cp-backup.log
  1. Сравнить число файлов и выборочно контрольные суммы.
  2. Удалить временные файлы, если всё в порядке.

Ролевые чек-листы

Для новичка:

  • Используйте -i.
  • Начинайте с маленькой папки в тестовую директорию.
  • Не запускайте sudo, если не понимаете почему он нужен.

Для системного администратора:

  • Предпочитайте -a для сохранения атрибутов.
  • Логируйте вывод и проверяйте ошибки.
  • Рассмотрите rsync для регулярных задач.

Для разработчика:

  • Используйте cp для тестовых копий среды.
  • Для деплоя используйте проверенные скрипты и контроля версий.

Тестовые сценарии и примеры приёмки

  1. Копирование с вложениями:
cp -R /test_src /test_dst

Ожидание: структура папок и все файлы доступны в /test_dst.

  1. Сохраняем права и ссылки:
cp -a /test_src /test_dst

Ожидание: символьные ссылки остались ссылками, права и временные метки совпадают.

Когда стоит использовать rsync вместо cp

  • Большие данные с частыми обновлениями.
  • Нужна проверка целостности и минимизация трафика.
  • Необходимость удалять файлы в месте назначения, которых уже нет в истоке.

Короткое резюме

cp — быстрый и простой инструмент для одноразового копирования директорий. Для сохранения прав и ссылок используйте -a. Для сложных или повторяющихся задач выбирайте rsync. Всегда проверяйте пути и права доступа перед выполнением операций.

Важно: перед массовыми операциями сделайте тестовую реплику и проверьте результат.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Резервная копия и восстановление Windows Terminal
Windows

Резервная копия и восстановление Windows Terminal

Отключить звук запуска Windows
Windows

Отключить звук запуска Windows

Как удалить профиль пользователя в Windows 11
Windows 11

Как удалить профиль пользователя в Windows 11

Писк и щелчки в Sony WH-1000XM4 — исправление
Аудио

Писк и щелчки в Sony WH-1000XM4 — исправление

Не запускается служба WLAN AutoConfig — решение
Windows

Не запускается служба WLAN AutoConfig — решение

Исправить ошибку .NET Framework 4: 0x800c0006
Техподдержка

Исправить ошибку .NET Framework 4: 0x800c0006