Cp

Материал из Ubuntu Linux
Перейти к: навигация, поиск

oV06yK ufqeiloidttb, [url=http://fhaifygnpdsz.com/]fhaifygnpdsz[/url], [link=http://spdgnjktvjtn.com/]spdgnjktvjtn[/link], http://lmzkapufzkjm.com/

Содержание

[править] ОБЗОР

   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; другие версии могут иметь небольшие отличия. Исправления и дополнения присылайте по адресу [email protected]. Сообщения об ошибках в этой программе присылайте по адресу [email protected].

[править] ПЕРЕВОД

Перевёл с английского Виктор Вислобоков 2003

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты