cp (Копирование)
100%

Командная строка · Урок 10

cp (Копирование)

Научитесь копировать файлы и деревья каталогов, управляя перезаписью и сохранением атрибутов.

Команда cp копирует файлы и каталоги, оставляя источник на месте. Базовый синтаксис:

cp [OPTIONS] SOURCE DESTINATION

Можно скопировать один файл по другому пути, несколько файлов в каталог или рекурсивно — целое дерево каталогов.

Копирование одного файла

Сначала указывается источник, затем назначение:

$ cp mycoolfile /home/pete/Documents/cooldocs

Если /home/pete/Documents/cooldocs — существующий каталог, копия появится внутри него под именем mycoolfile. Можно указать и новое имя назначения:

$ cp mycoolfile /home/pete/Documents/mycoolfile_backup

Во втором примере скопированные данные получают имя mycoolfile_backup.

Какая команда копирует draft.txt в final.txt, сохраняя draft.txt?

Копирование нескольких файлов в каталог

Сначала перечислите источники, а каталог назначения поставьте последним:

$ cp report.txt notes.txt summary.txt /home/pete/Documents/

При нескольких источниках последний аргумент обязан быть каталогом.

Какая команда копирует a.txt и b.txt в существующий каталог archive/?

Выбор файлов подстановочными шаблонами

Оболочка раскрывает шаблоны в несколько исходных путей:

  • *: любая последовательность символов.
  • ?: любой один символ.
  • []: один из символов в скобках.

Например, скопируем имена на .jpg из текущего каталога в Pictures:

$ cp *.jpg /home/pete/Pictures

Перед массовым копированием проверьте совпадения, особенно если в назначении важные данные:

$ ls *.jpg
beach.jpg  lunch.jpg  profile.jpg
$ cp *.jpg /home/pete/Pictures

Какая команда перед копированием *.jpg показывает совпавшие нескрытые имена?

Копирование деревьев каталогов

Для каталога со всем содержимым нужна рекурсия через -r или -R:

$ cp -r Pumpkin/ /home/pete/Documents

Так каталог Pumpkin со всеми потомками копируется в Documents.

Прописная -R тоже включает рекурсию:

$ cp -R website /home/pete/backups/

Архивный режим -a удобен для резервных копий: он копирует рекурсивно, сохраняя ссылки и многие атрибуты.

$ cp -a project/ project-backup/

Какая команда рекурсивно копирует project/ для резервной копии, сохраняя ссылки и многие атрибуты?

Управление перезаписью

По умолчанию cp может заменить существующий файл назначения. Параметр -i запрашивает подтверждение:

$ cp -i mycoolfile /home/pete/Pictures
cp: overwrite '/home/pete/Pictures/mycoolfile'? n

Параметр -n запрещает перезаписывать существующее назначение:

$ cp -n mycoolfile /home/pete/Pictures

GNU cp -f при невозможности открыть назначение для записи пытается удалить его и повторить копирование. Это не заменяет проверку целей. Псевдонимы оболочки тоже могут добавлять параметры вроде -i, поэтому неожиданный запрос следует исследовать.

Какая команда копирует report.txt в backup/, но пропускает существующий одноимённый файл?

Сохранение атрибутов и обновление

-p сохраняет режим, при наличии разрешений владельца и временные метки источника:

$ cp -p mycoolfile /home/pete/backups/

-u копирует источник только при отсутствии назначения или если источник новее:

$ cp -u *.txt /home/pete/Documents/

Другие параметры:

  • -f: при необходимости удалить назначение перед принудительной записью.
  • -v: показывать каждый копируемый файл.

Урок завершён

Вы завершили cp (Копирование)

Теперь вы умеете копировать файлы и деревья каталогов, управляя назначениями.

  • Ставить источники перед назначением.

  • Проверять совпадения шаблона до массовой операции.

  • Копировать деревья рекурсивно или в архивном режиме.

  • Подтверждать, пропускать или намеренно заменять назначения.

  • Сохранять атрибуты или копировать только более новые источники.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Следующий Урок
Назад к Командная строка