cp

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

Шаблон:Другие значения

cp (от англ. copy) — консольная команда/программа Unix в составе GNU Coreutils, предназначенная для копирования файлов (и директорий, в Unix всё является файлами, в том числе и директории).

При помощи cp возможно копирование в каталоги с другой файловой системой.

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

Последующие примеры использования касаются AIX версии cp. В других операционных системах семейства Unix данная команда может иметь другие ключи. В DOS и Windows аналогом является команда COPY.

Команда cp поддерживает Linux шаблоны имен файлов.

Синтаксис cp

      cp [OPTION]... [-T] SOURCE DEST
      cp [OPTION]... SOURCE... DIRECTORY
      cp [OPTION]... -t DIRECTORY SOURCE...

Чтобы скопировать файл

    cp [ -f ] [ -h ] [ -i ] [ -p ][ -- ] исходный_файл целевой_файл

Чтобы скопировать файл или файлы в другой каталог

   cp [-R] [-H | -L | -P] [-f | -i] [-pv] исходный_файл ... целевая_директория

Чтобы скопировать каталог в другой каталог (должен быть использован флаг -r или -R)

    cp [ -f ] [ -h ] [ -i ] [ -p ] [ -- ] { -r | -R } исходная_директория ... целевая_директория

Параметры команды

  • -R, -r, --recursive (recursive) — копировать директории рекурсивно (то есть все поддиректории и все файлы в поддиректориях).
  • -f (force) — разрешает удаление целевого файла, в который производится копирование, если он не может быть открыт для записи, т.е. перезаписывает файлы при копировании (если такие уже есть) без дополнительных предупреждений.
  • -H — используйте этот ключ, чтобы копировать символические ссылки. По умолчанию команда переходит по символическим ссылкам и копирует файлы, на которые те указывают.
  • -i (interactive) — команда будет запрашивать, следует ли перезаписывать конечный файл, имя которого совпадает с именем исходного, то есть если в параметре целевой_каталог или целевой_файл встречается такое же имя файла, какое было задано в параметре исходный_файл или исходная_директория, то запрашивается подтверждение. Для того, чтобы перезаписать файл, следует ввести y или его эквивалент для данной локали. Ввод любого другого символа приведёт к отмене перезаписи данного файла.
  • -n, --no-clobber — не перезаписывать существующий файл (отменяет предыдущий параметр -i).
  • -v, --verbose — выводит имя каждого файла перед его копированием.

в некоторых системах назначен alias cp='cp -i', то есть по умолчанию команда cp будет спрашивать о перезаписи

  • -p (preserve) — повторяет следующие свойства исходного файла или директории у целевого файла или директории:
    • Время последнего изменения и последнего доступа.
    • Идентификатор пользователя и группы.
    • Права доступа и биты SUID и SGID.
  • -d — символические ссылки будут оставаться ссылками (а иначе вместо ссылки копируется файл, на который дается ссылка).
 -a, --archive
              same as -dR --preserve=all

       --attributes-only
              don't copy the file data, just the attributes

       --backup[=CONTROL]
              make a backup of each existing destination file

       -b     like --backup but does not accept an argument

       --copy-contents
              copy contents of special files when recursive

       -d     same as --no-dereference --preserve=links

       -f, --force
              if an existing destination file cannot be opened, remove it  and
              try again (redundant if the -n option is used)

       -i, --interactive
              prompt before overwrite (overrides a previous -n option)

       -H     follow command-line symbolic links in SOURCE

       -l, --link
              hard link files instead of copying

       -L, --dereference
              always follow symbolic links in SOURCE

       -n, --no-clobber
              do  not  overwrite  an  existing  file  (overrides a previous -i
              option)

       -P, --no-dereference
              never follow symbolic links in SOURCE

       -p     same as --preserve=mode,ownership,timestamps

       --preserve[=ATTR_LIST]
              preserve the specified attributes (default: mode,ownership,time‐
              stamps),  if  possible  additional  attributes:  context, links,
              xattr, all

       --no-preserve=ATTR_LIST
              don't preserve the specified attributes

       --parents
              use full source file name under DIRECTORY

       -R, -r, --recursive
              copy directories recursively

       --reflink[=WHEN]
              control clone/CoW copies. See below

       --remove-destination
              remove each existing destination file before attempting to  open
              it (contrast with --force)

       --sparse=WHEN
              control creation of sparse files. See below

       --strip-trailing-slashes
              remove any trailing slashes from each SOURCE argument

       -s, --symbolic-link
              make symbolic links instead of copying

       -S, --suffix=SUFFIX
              override the usual backup suffix

       -t, --target-directory=DIRECTORY
              copy all SOURCE arguments into DIRECTORY

       -T, --no-target-directory
              treat DEST as a normal file

       -u, --update
              copy  only  when  the  SOURCE file is newer than the destination
              file or when the destination file is missing

       -v, --verbose
              explain what is being done

       -x, --one-file-system
              stay on this file system

       --help display this help and exit

       --version
              output version information and exit

Примеры использования cp

Копирование каталога /media/fff1787/share1/load/ в каталог /media/beac6e58/, с выводом имени копируемого файла, авто пропуском существующих файлов, рекурсивно для вложенных каталогов:

cp -nvR /media/fff1787/share1/load/ /media/beac6e58/

Копирование всех не скрытых файлов каталога /media/fff1787/share1/load/ в каталог /media/beac6e58/, с выводом имени копируемого файла, авто пропуском существующих файлов, рекурсивно для вложенных каталогов:

cp -nvR /media/fff1787/share1/load/* /media/beac6e58/

Копирование файла .htaccess из каталога /media/fff1787/share1/load/ в каталог /media/beac6e58/, с выводом имени копируемого файла:

cp -v /media/fff1787/share1/load/.htaccess /media/beac6e58/

См. также

Ссылки

Шаблон:Команды Unix Шаблон:Команды Windows