Provided by: manpages-ru_0.98-4_all bug

ИМЯ

       cp - копирование файлов и каталогов

ОБЗОР

       cp []  
       cp [] ... 

       Опции POSIX: [-fiprR] [--]

       Дополнительные опции POSIX 1003.1-2003: [-HLP]

       Опции GNU file-utils 4.0 (краткая форма):
       [-abdfilprsuvxPR]    [-S   ]   [-V   {numbered,existing,simple}]
       [--backup=CONTROL] [--sparse=] [--help] [--version] [--]

       Дополнительные опции GNU file-utils 4.1 (краткая форма):
       [-HLP]      [--copy-contents]       [--no-preserve]       [--reply=HOW]
       [--remove-destination]                       [--strip-trailing-slashes]
       [--target-directory=DIR]

ОПИСАНИЕ

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

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

       (Так, если /a~-- это каталог, то cp -r /a /b скопирует /a в /b/a и /a/x
       в /b/a/x в случае, если /b уже существует,  но  эта  же  команда  будет
       копировать  /a  в  /b  и  /a/x  to  /b/x, если /b не существует, или же
       завершится с ошибкой, если /b -- обычный файл).

       Права доступа к файлам  и  каталогам  будут  равны  тем,  что  были  на
       оригинальных  файлах,  логически  умноженными  (AND)  на  0777 (другими
       словами, в новых правах будут сброшены биты sticky, setuid и setgid  --
       Прим.  ред.),  а  также  с учетом umask(1) пользователя (за исключением
       случая, когда задана опция -p).  (Но во время рекурсивного  копирования
       каталогов,  вновь  создаваемые  каталоги будут временно получать права,
       логически сложенные (OR) со значением S_IRWXU (0700), для  того,  чтобы
       разрешить чтение, запись и поиск во вновь созданных каталогах).

       При попытке скопировать файл сам в себя ничего происходить не будет (за
       исключением возможной выдачи сообщения об  ошибке).   Когда  происходит
       копирование  файла  в  другой  существующий  файл,  то он открывается с
       использованием  вызова   open(path,   O_WRONLY   |   O_TRUNC).    Когда
       копирование осуществляется во вновь создаваемый файл, то он создается с
       использованием вызова open(path, O_WRONLY | O_CREAT, mode).   Если  эти
       вызовы завершаются неудачно, то считается, что файл существует, а чтобы
       cp попытался его удалить (unlink), необходимо указать опцию  -f.   Если
       удаление  проходит  успешно,  то  дальше  все работает как для случая с
       новым файлом.

ОПЦИИ POSIX

       POSIX имеет четыре с половиной опции:

       -f     Если требуется, удаляет существующие файлы, в которые происходит
              копирование. (См. выше)

       -i     Спрашивает,   нужно  ли  перезаписывать  существующие  файлы,  в
              которые происходит копирование. (Запрос выдается на  стандартный
              вывод   ошибок,   а   ответ   читается  со  стандартного  ввода.
              Копирование  осуществляется  только  в   случае   положительного
              ответа).

       -p     Сохраняет  исходные параметры файла, такие как владелец, группа,
              права доступа  (включая  suid  и  sgid  биты),  время  последней
              модификации  и  время последнего доступа к файлу. В случае, если
              установка владельца или группы приводит к ошибке,  suid  и  sgid
              биты  сбрасываются.   (Заметим, что впоследствии исходный файл и
              его копия могут иметь разное время последнего доступа,  так  как
              операция копирования является доступом к исходному файлу).

       -R     Копировать каталоги рекурсивно; правильно обрабатывать ситуации,
              когда попадаются объекты, не  являющиеся  обычными  файлами  или
              каталогами.   (Так,  копией  FIFO  или  специального файла будет
              также являться FIFO или специальный файл).

       -r     Копировать    каталоги    рекурсивно;    выполнять     какие-то,
              неопределенные стандартом действия, когда попадаются объекты, не
              являющиеся обычными файлами или каталогами. (Так, разрешается, и
              фактически  одобряется,  наличие  опции  -r как синонима для -R.
              Однако, глупое поведение, которое проявляет версия cp в GNU  4.0
              не запрещается.)

       --     Завершает список опций.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ POSIX 2003

       Стандарт  POSIX 1003.1-2003 добавляет три опции, которые определяют как
       управлять  символьными  ссылками.   Когда   выполняется   нерекурсивное
       копирование,  символьные ссылки разименовываются (берутся те объекты на
       которые они  указывают,  вместо  самой  ссылки  --  прим.пер.).   Когда
       выполняется   рекурсивное   копирование   с  использованием  опции  -r,
       результаты  зависят  от  реализации.  Когда   выполняется   рекурсивное
       копирование с использованием опции -R:

       -H     Разименовывает символьные ссылки, указанные в списке параметров.
              Не разименовывает  символьные  ссылки,  которые  встречаются  во
              время рекурсивного копирования, а просто копирует их.

       -L     Разименовывает  все  символьные  ссылки,  как  заданные в списке
              параметров   так   и   встретившиеся   во   время   рекурсивного
              копирования.

       -P     Не  разименовывает  никакие  символьные  ссылки,  ни  заданные в
              списке  параметров,  ни  встретившиеся  во  время   рекурсивного
              копирования.  Просто копирует их как символьные ссылки.

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

ПОДРОБНОСТИ ВЕРСИИ GNU

       Обычно файлы записываются точно в том же виде, как  и  были  прочитаны.
       См. ниже об опции --sparse, который является исключением.

       По умолчанию cp не копирует каталоги (см. опцию -r ).

       cp   обычно  отвергает  копирование  файла  в  себя  же,  за  следующим
       исключением: если заданы опции --force --backup  и  при  этом  
        и , в который осуществляется копирование, идентичны и являются
       обычными файлами, то cp сделает  резервную  копию  файла:  обычную  или
       нумерованную, как скажете.  Это полезно, когда вы просто хотите сделать
       резервную копию существующего файла, перед тем как его изменить.

       По умолчанию, символьные ссылки не разименовываются.

ОПЦИИ GNU

       -a, --archive
              По возможности сохраняет структуру и  атрибуты  исходных  файлов
              при   копировании   (но   не   сохраняет  структуру  каталогов).
              Эквивалентно заданию опций -dpPR.

       -b     Смотрите обсуждение резервных копий ниже.

       --copy-contents (начиная с версии file-utils 4.1)
              В  file-utils  4.0  делаются  глупые  вещи,  попытки  копировать
              содержимое   файлов  устройств  и  FIFO  во  время  рекурсивного
              копирования. Никогда не используйте эту опцию. С ней, `cp' может
              просто  зависнуть,  читая  FIFO  или /dev/tty или заполнить весь
              диск копируя /dev/zero.

       -d     Копирует символьные ссылки как символьные ссылки, а не файлы, на
              которые   они   указывают,  и  сохраняет  жесткие  ссылки  между
              исходными файлами в копиях.

              В file-utils 4.0 длинная опция --no-dereference  была  синонимом
              для  опции  -d,  но  в file-utils 4.1 она является синонимом для
              опции  -P,  в  то  время  как  опция  -d   эквивалентна   опциям
              --no-dereference --preserve=links.

       -f, --force
              Удаляет  существующие  файлы  в  случае возникновения ошибки при
              открытии их на чтение  и  никогда  не  спрашивает  подтверждения
              перед  тем как это сделать. (Такое поведение начинается с версии
              file-utils 4.1. В file-utils 4.0  эта  опция  была  эквивалентна
              новой опции --remove-destination.)

       -H (начиная с версии file-utils 4.1)
              См. описание POSIX выше.

       -i, --interactive
              Спрашивает,  нужно ли перезаписывать существующие обычные файлы.

       -l, --link
              Делает жесткие ссылки  вместо  копирования  обычных  файлов  (не
              каталогов).

       -L, --dereference (начиная с версии file-utils 4.1)
              Смотрите описание POSIX выше.

       --no-preserve= (начиная с версии file-utils 4.1)
              Не сохраняет заданные атрибуты.  См. ниже опцию --preserve.

       -p, --preserve
              Защищает  оригинальные  параметры  файла,  такие  как  владелец,
              группа, права доступа и временные штампы.

       --preserve= (начиная с версии file-utils 4.1)
              Здесь параметр АТРИБУТЫ может принимать одно из значений  "mode"
              (права  доступа),  "ownership" (владелец и группа), "timestamps"
              (временные штампы), "links", "all" (всё перечисленное).

       -P, --no-dereference (начиная с версии file-utils 4.1)
              См. выше описание POSIX.  Эта опция заменяет опцию  -P  в  file-
              utils  4.0,  которая  была  синонимом опции --parents. См. также
              опцию -d выше.

       --parents (начиная с версии file-utils 4.0 также -P)
              Формирует имя каждого копируемого файла путем добавления к имени
              каталога,  в  который  осуществляется копирование, символа косой
              черты (/) и указанного полного имени исходного файла.  Последний
              заданный  аргумент cp должен быть именем существующего каталога.
              Например, команда
                  cp --parents a/b/c existing_dir
              копирует файл a/b/c в existing_dir/a/b/c, создавая отсутствующие
              промежуточные каталоги.

       -r     В  file-utils 4.1: синоним опции -R.  В file-utils 4.0: Копирует
              каталоги рекурсивно, копирует любые не-каталоги и не  символьные
              ссылки  (то есть FIFO и специальные файлы), как если бы они были
              обычными файлами.  Это глупое поведение можно получить  в  file-
              utils 4.1 если указать опцию --copy-contents.

       -R, --recursive
              Копирует каталоги рекурсивно, защищая не-каталоги.

       --reply=HOW (начиная с версии file-utils 4.1)
              Здесь аргумент HOW может принимать одно из значений "yes", "no",
              "query", определяя какой ответ будет автоматически  даваться  на
              все    вопросы:    "да",   "нет"   или   "запрос"   пользователю
              соответственно.

       --remove-destination (начиная с версии file-utils 4.1)
              Удаляет  каждый  существующий  (в  том  месте  куда   происходит
              копирование)  файл,  перед копированием. В версии file-utils 4.0
              эта опция неявно включалась при указании опции -f.

       --sparse=
              Разреженный (sparse) файл содержит  дыры  --  последовательности
              нулевых  байт,  которые  не занимают физических блоков на диске;
              системный вызов read читает их как нули. Такой подход может  как
              сохранить   дисковое  пространство,  так  и  увеличить  скорость
              работы,  потому  что  многие  бинарные  файлы   содержат   много
              расположенных  последовательно  нулевых  байт.  По умолчанию, cp
              определяет дыры в исходном файле с помощью простой  эвристики  и
              делает соответствующий выходной файл также разреженным.

              Параметр  может принимать следующие значения:

              auto   Поведение    по   умолчанию:   выходной   файл   является
                     разреженным,   если   входной   файл    также    является
                     разреженным.

              always Всегда  делать  выходной  файл  разреженным. Это полезно,
                     когда  входной  файл  расположен  на  файловой   системе,
                     которая  не  поддерживает  разреженные  файлы, а выходной
                     файл будет располагаться на файловой системе, которая  их
                     поддерживает.

              never  Никогда  не  делать  выходные файлы разреженными. Если вы
                     нашли применение для этой опции, дайте нам знать.

       --strip-trailing-slashes (начиная с file-utils 4.1)
              Удаляет все конечные символы `' из каждого аргумента. (Это может
              изменить  интерпретацию  аргумента,  если он является символьной
              ссылкой на каталог.)

       -s, --symbolic-link
              Делает символьные ссылки вместо копирования  не-каталогов.   Все
              имена  исходных  файлов  должны быть полными, т. е. начинаться с
              символа /, за исключением случая, когда символьные ссылки  будут
              создаваться  в текущем каталоге.  Эта опция генерирует сообщение
              об ошибке, если система не поддерживает символьные ссылки.

       -S     Суффикс резервной копии, см. ниже.

       --target-directory= (начиная с версии file-utils 4.1)
              Задаёт   каталог   назначения,   куда    будет    осуществляться
              копирование.   Имеется в виду для использования с xargs(1), как,
              например, в "ls | xargs cp --target-directory=../d".

       -u, --update
              Не копировать не-каталоги, которые уже существуют в  том  месте,
              куда  осуществляется  копирование,  если  они имеют такое же или
              более раннее время модификации.

       -v, --verbose
              Выводить имя каждого файла перед его копированием.

       -x, --one-file-system
              Пропускать  подкаталоги,   которые   расположены   на   файловых
              системах, отличных от той, где начиналось копирование.

ОПЦИИ РЕЗЕРВНОГО КОПИРОВАНИЯ GNU

       GNU-версии  таких  программ как cp, mv, ln, install и patch могут, если
       потребуется, делать резервные копии файлов, которые будут перезаписаны,
       изменены или уничтожены.  При желании, резервные копии файлов создаются
       с помощью опции -b.  Как они будут  называться,  задает  опция  -V.   В
       случае,  если  имя файла резервной копии создается с помощью добавления
       суффикса к имени исходного файла,  то  суффикс  указывается  с  помощью
       опции -S.

       -b, --backup
              Делать  резервные  копии  файлов, которые будут перезаписаны или
              удалены.

       --backup=CONTROL
              (Начиная с версии fileutils-4.1.)

       -S , --suffix=
              Добавить  к имени файла при создании его резервной копии.

              Если  данная  опция  не  задана,  то суффикс можно также задать,
              используя  переменную  окружения  SIMPLE_BACKUP_SUFFIX  Если  не
              задана  ни  опция,  ни  переменная, то по умолчанию используется
              суффикс ~.

       -V , --version-control=
              Определяет,  как  будут  называться  резервные   копии   файлов.
              Аргумент    может  принимать  значения  numbered  (или  t),
              existing (или nil) и never (или simple). Если  данная  опция  не
              задана,  то  будет  использовано  значение  переменной окружения
              VERSION_CONTROL.  Если же не задано значение и этой  переменной,
              то  по  умолчанию  тип  резервного копирования устанавливается в
              existing.

              Данная опция соответствует переменной version-control  в  Emacs.
              Допустимыми  значениями   являются (допускаются однозначные
              сокращения):

              t, numbered
                     Всегда делать нумерованные резервные копии файлов.

              nil, existing
                     Делать нумерованные резервные копии  файлов  для  файлов,
                     которые  уже  их  имеют  и  простые  резервные  копии для
                     остальных файлов.

              never, simple
                     Всегда делать простые резервные копии.

СТАНДАРТНЫЕ ОПЦИИ GNU

       --help Выдать подсказку на стандартный вывод и успешно завершиться.

       --version
              Выдать информацию  о  версии  на  стандартный  вывод  и  успешно
              завершиться.

       --     Служит для обозначения конца списка опций.

ОКРУЖЕНИЕ

       При  работе  обычным  образом  используются  значения  переменных LANG,
       LC_ALL,  LC_COLLATE,  LC_CTYPE   и   LC_MESSAGES.    Для   GNU   версии
       используются  также  переменные SIMPLE_BACKUP_SUFFIX и VERSION_CONTROL,
       контролирующие создание резервных копий, как описано выше.

СОВМЕСТИМОСТЬ

       POSIX 1003.2

ЗАМЕЧАНИЯ

       Данная страница описывает версию cp пакета fileutils-4.1; другие версии
       могут  иметь небольшие отличия.  Исправления и дополнения присылайте по
       адресу aeb@cwi.nl.  Сообщения об ошибках в этой программе присылайте по
       адресу fileutils-bugs@gnu.ai.mit.edu.

ПЕРЕВОД

       Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003