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