Команда cp — это стандартный инструмент для копирования файлов и каталогов в Linux. Ее базовый синтаксис: cp [ИСТОЧНИК] [НАЗНАЧЕНИЕ].
Базовое копирование файлов
Чтобы скопировать файл, вы указываете исходный файл и целевой каталог или путь.
cp mycoolfile /home/pete/Documents/cooldocs
В этом примере mycoolfile — это исходный файл, а /home/pete/Documents/cooldocs — целевой каталог. Вы также можете скопировать файл и присвоить ему новое имя в месте назначения.
cp mycoolfile /home/pete/Documents/mycoolfile_backup
Использование подстановочных знаков для массового копирования
Подстановочные знаки (wildcards) — это специальные символы, которые помогают выбирать несколько файлов на основе шаблонов, обеспечивая большую гибкость.
*: Соответствует любой последовательности символов.?: Соответствует любому одному символу.[]: Соответствует любому из символов, заключенных в скобки.
Например, чтобы скопировать все JPEG-изображения из текущего местоположения в каталог Pictures:
cp *.jpg /home/pete/Pictures
Рекурсивное копирование каталогов
Если вы попытаетесь скопировать каталог с помощью cp без каких-либо опций, вы получите ошибку. Чтобы скопировать каталог и все его содержимое, включая подкаталоги, необходимо использовать флаг -r (рекурсивный).
cp -r Pumpkin/ /home/pete/Documents
Эта команда копирует каталог Pumpkin и все, что находится внутри него, в ваш каталог Documents.
Обработка перезаписи файлов
По умолчанию cp перезапишет файл в месте назначения, если у него такое же имя. Чтобы предотвратить случайную потерю данных, используйте флаг -i (интерактивный), который запрашивает подтверждение перед перезаписью.
cp -i mycoolfile /home/pete/Pictures
И наоборот, если вы хотите принудительно перезаписать файл без каких-либо запросов, вы можете использовать флаг cp -f. Это полезно в сценариях, где взаимодействие с пользователем невозможно.
cp -f mycoolfile /home/pete/Pictures
Сохранение атрибутов файлов с помощью cp -p
При копировании файла его метаданные, такие как время изменения и владелец, обычно обновляются. Чтобы сохранить эти исходные атрибуты, флаг cp -p имеет решающее значение. Использование cp -p in linux гарантирует, что копия является точной репликой не только по содержимому, но и по метаданным.
Флаг cp -p flag особенно полезен для резервного копирования или при миграции файлов, когда сохранение временных меток имеет решающее значение.
cp -p mycoolfile /home/pete/backups/
Эта команда демонстрирует, как использовать linux cp -p для копирования mycoolfile с сохранением его режима, владельца и временных меток.