.\"- .\" Copyright (c) 1989, 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 .\" %FreeBSD: src/bin/cp/cp.1,v 1.39 2006/11/02 19:10:05 ceri Exp % .\" $FreeBSDru: frdp/doc/ru_RU.KOI8-R/man/man1/cp.1,v 1.9 2007/11/08 12:23:22 ru Exp $ .\" $FreeBSD$ .\" .Dd 27 октября 2006 .Dt CP 1 .Os .Sh НАЗВАНИЕ .Nm cp .Nd копировать файлы .Sh СИНТАКСИС .Nm .Oo .Fl R .Op Fl H | Fl L | Fl P .Oc .Op Fl f | i | n .Op Fl lpv .Ar исходный_файл целевой_файл .Nm .Oo .Fl R .Op Fl H | Fl L | Fl P .Oc .Op Fl f | i | n .Op Fl lpv .Ar исходный_файл ... целевой_каталог .Sh ОПИСАНИЕ В первой форме утилита .Nm копирует содержимое файла .Ar исходный_файл в .Ar целевой_файл . Во второй форме содержимое каждого указанного файла копируется в .Ar целевой_каталог . Имена самих файлов при этом не изменяются. Если .Nm обнаруживает попытку копирования файла самого в себя, копирование не производится. .Pp Имеются следующие опции: .Bl -tag -width flag .It Fl H Если указана опция .Fl R , следовать символическим ссылкам, указанным в командной строке, но не следовать символическим ссылкам, встречающимся в процессе обхода дерева каталогов. .It Fl L Если указана опция .Fl R , следовать всем символическим ссылкам. .It Fl P Если указана опция .Fl R , не следовать никаким символическим ссылкам. Это режим работы по умолчанию. .It Fl R Если .Ar исходный_файл указывает на каталог, .Nm копирует этот каталог вместе со всем деревом файловой иерархии, которое он содержит. Если .Ar исходный_файл оканчивается на .Pa / , копируется не сам каталог, а только его содержимое. Эта опция также указывает на необходимость копирования символических ссылок, а не объектов, на которые они указывают, и заставляет .Nm создавать специальные файлы вместо того, чтобы копировать их, как обычные. Создаваемые каталоги имеют те же права доступа, что и исходные каталоги, вне зависимости от действующего для процесса значения umask. .Pp Обратите внимание, что .Nm копирует жёсткие ссылки как отдельные файлы. Если вам нужно сохранять жёсткие ссылки, используйте .Xr tar 1 , .Xr cpio 1 или .Xr pax 1 . .It Fl f Для каждого уже существующего целевого имени пути, удалять его и создавать новый файл, не требуя подтверждения операции, вне зависимости от его прав доступа. (Опция .Fl f отменяет действие любой из ранее указанных опций .Fl i или .Fl n . ) .It Fl i Заставляет .Nm выдавать запрос через стандартный файл ошибок перед копированием файла, которое бы вызвало перезапись существующего файла. Если ответ, полученный со стандартного ввода, начинается символом .Sq Li y или .Sq Li Y , будет предпринята попытка копирования. (Опция .Fl i отменяет действие любой из ранее заданных опций .Fl f или .Fl n . ) .It Fl l Создавать жёсткие ссылки на обычные файлы в иерархии вместо того, чтобы их копировать. .It Fl n Не перезаписывать существующие файлы. (Опция .Fl n отменяет действие любой из предшествующих опций .Fl f или .Fl i . ) .It Fl p Заставляет .Nm сохранять следующие атрибуты каждого исходного файла в создаваемой копии: время модификации, время доступа, флаги файла, режим доступа, идентификаторы пользователя и группы, насколько это позволено правами доступа. .Pp Если значения идентификаторов пользователя и группы не могут быть сохранены, не выводится никакого сообщения об ошибке, и возвращаемое программой значение статуса завершения не изменяется. .Pp Если исходный файл имеет установленный бит set-user-ID и значение идентификатора пользователя не может быть сохранено, бит set-user-ID в атрибутах копии не сохраняется. Если исходный файл имеет установленный бит set-group-ID и значение идентификатора группы не может быть сохранено, бит set-group-ID в атрибутах копии не сохраняется. Если исходный файл имеет установленные биты set-user-ID и set-group-ID и значение либо идентификатора пользователя, либо идентификатора группы не может быть сохранено, ни один из битов set-user-ID и set-group-ID в атрибутах копии не сохраняется. .It Fl v Выводить больше информации, показывая файлы по мере их копирования. .El .Pp Для каждого уже существующего целевого файла, его содержимое перезаписывается, если позволяют права. Его режим доступа и идентификаторы пользователя и группы не изменяются, если не задана опция .Fl p . .Pp Во второй синтаксической форме .Ar целевой_каталог должен существовать, если только не был указан единственный .Ar исходный_файл , являющийся каталогом, и опция .Fl R . .Pp Если целевой файл не существует, используются права исходного файла, изменённые в соответствии со значением umask (см.\& .Xr csh 1 ) . Если исходный файл имеет установленный бит set-user-ID, этот бит сбрасывается, если только исходный файл и файл назначения не принадлежат одному владельцу. Если исходный файл имеет установленный бит set-user-ID, этот бит сбрасывается, если только исходный файл и файл назначения не принадлежат одной группе, а пользователь является членом этой группы. Если установлены оба бита, и set-user-ID, и set-group-ID, должны быть соблюдены оба вышеупомянутых условия, в противном случае оба этих бита сбрасываются. .Pp Для создания или перезаписи файлов требуются соответствующие права доступа. .Pp Утилита .Nm всегда следует символическим ссылкам, если только не указана опция .Fl R (в этом случае она по умолчанию символическим ссылкам не следует). Опции .Fl H или .Fl L (совместно с опцией .Fl R ) приводят к тому, что .Nm будет следовать символическим ссылкам, как описано выше. Опции .Fl H , .Fl L и .Fl P игнорируются, если не указана опция .Fl R . Кроме этого, эти опции отменяют друг друга, и действия команды определяются той опцией, которая была указана последней. .Pp Если .Nm получает сигнал .Dv SIGINFO (см.\& аргумент .Cm status для .Xr stty 1 ) , на стандартный вывод будут выведены имена текущего исходного и целевого файлов, а также прогресс копирования в процентах. .Sh СТАТУС ЗАВЕРШЕНИЯ .Ex -std .Sh СОВМЕСТИМОСТЬ Старые версии .Nm имели опцию .Fl r . Данная реализация поддерживает эту опцию, однако её поведение отличается от исторического. Использование этой опции настоятельно не рекомендуется, так как её поведение зависит от конкретной реализации. Во .Fx , .Fl r является синонимом для .Fl RL и работает так же, если это не переопределено другими флагами. Реализация .Fl r в старых версиях отличалась тем, что при воссоздании иерархии файлов специальные файлы копировались как обычные. .Pp Опции .Fl v и .Fl n являются нестандартными и их использование в командных сценариях не рекомендуется. .Sh СМОТРИ ТАКЖЕ .Xr mv 1 , .Xr rcp 1 , .Xr umask 2 , .Xr fts 3 , .Xr symlink 7 .Sh СТАНДАРТЫ Предполагается, что утилита .Nm совместима со стандартом .St -p1003.2 . .Sh ИСТОРИЯ Команда .Nm появилась в .At v1 .