Команда cp копирует файлы и каталоги, оставляя источник на месте. Базовый синтаксис:
cp [OPTIONS] SOURCE DESTINATION
Командная строка · Урок 10
Научитесь копировать файлы и деревья каталогов, управляя перезаписью и сохранением атрибутов.
Команда 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, mv и rm для структуры проекта.Урок завершён
Теперь вы умеете копировать файлы и деревья каталогов, управляя назначениями.
Ставить источники перед назначением.
Проверять совпадения шаблона до массовой операции.
Копировать деревья рекурсивно или в архивном режиме.
Подтверждать, пропускать или намеренно заменять назначения.
Сохранять атрибуты или копировать только более новые источники.
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт