Программирование в стандарте POSIX


Создание, удаление, копирование и перемещение файлов - часть 7


целевой_каталог cp -R [-H | -L | -P] [-fip] исходный_файл ... целевой_каталог

В двух первых формах утилита cp напоминает ln, только наряду с возможным созданием новых ссылок создаются и новые файлы и, в любом случае, копируется содержимое исходных (или указуемых исходными, если последние представляют собой символьные ссылки) файлов.

При наличии опции -R выполняется рекурсивное копирование исходных файловых иерархий в целевой каталог со стандартной трактовкой символьных ссылок, управляемой опциями -H, -L и -P (см. выше, например, описание утилиты chown). Если копирование производится в существующий каталог, имена копий образуются как конкатенация целевого каталога, символа / и маршрута относительно каталога, содержащего исходный_файл. Если в командной строке заданы два файла и целевой не существует, он создается и становится корнем иерархии-копии, то есть исходный_файл копируется непосредственно в него, а маршруты файлов нижележащих уровней считаются относительно исходного_файла.

Если в командной строке задано более двух файлов и целевой не существует или не является каталогом, это считается ошибкой.

Опция -i влечет запрос подтверждения перед попыткой копирования в существующий файл.

По опции -f, если не удается открыть целевой файл, делается попытка сначала удалить его, а затем продолжить действия по копированию.

Опция -P вызывает копирование не только содержимого, но и атрибутов исходных файлов (режима, идентификаторов владельцаи владеющей группы, времени последнего доступа и изменения).

Синтаксис, с точностью до опций аналогичный двум первым формам cp, имеет вызов служебной программы перемещения файлов   mv:

mv [-fi] исходный_файл целевой_файл mv [-fi] исходный_файл ... существующий_целевой каталог

Формально можно считать, что она выполняет копирование иерархий с корнями в исходных_файлах (без раскрытия символьных ссылок и с копированием атрибутов файлов) и уничтожает оригиналы. Отметим, что в первой форме mv целевой_файл может не существовать, а исходный - являться каталогом; в любом случае на месте целевого каталога допускается использование символьной ссылки на него.




Начало  Назад  Вперед



Книжный магазин