The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

cp (1)
  • cp (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • cp (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • >> cp (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • cp (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • cp (1) ( POSIX man: Команды и прикладные программы пользовательского уровня )
  • cp (4) ( FreeBSD man: Специальные файлы /dev/* )
  •  

    ИМЯ

    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".
    -t, --target-directory=КАТАЛОГ
    копирует все аргументы ИСТОЧНИК в КАТАЛОГ
    -T, --no-target-directory
    обрабатывать DEST как обычный файл.
    -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


     

    Index

    ИМЯ
    ОБЗОР
    ОПИСАНИЕ
    ОПЦИИ POSIX
    ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ POSIX 2003
    ПОДРОБНОСТИ ВЕРСИИ GNU
    ОПЦИИ GNU
    ОПЦИИ РЕЗЕРВНОГО КОПИРОВАНИЯ GNU
    СТАНДАРТНЫЕ ОПЦИИ GNU
    ОКРУЖЕНИЕ
    СОВМЕСТИМОСТЬ
    ЗАМЕЧАНИЯ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру