Articles of cp. Cp ubuntu


Что означает «cp: omitting directory»? Ubuntu Linux

Когда я это сделаю, я начинаю получать следующие сообщения:

По умолчанию cp копирует только прямые файлы, а не подкаталоги в каталоге. Сообщение cp: omitting directory 'directory' предупреждает вас о том, что указанный каталог не копируется.

Для этого укажите параметр -r (или --recursive ):

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

На странице руководства (команда: man cp ) содержится обзор доступных опций.

Сообщение означает, что cp не скопировал перечисленные каталоги. Это поведение по умолчанию для файлов cp – only копируется нормально, независимо от того, задаете ли вы их явно или используете * . Если вы хотите скопировать каталоги, используйте -r что означает «рекурсивный».

Пара вещей, которые нужно проверить:

  1. Не используйте sudo . Вам это не нужно, у вас уже есть права на запись материала в свой собственный домашний каталог.

  2. Вы можете легко просмотреть скрытые файлы и каталоги в графическом диспетчере файлов, выбрав «Показать / показать скрытые файлы» в меню. Или нажав Ctrl- H .

  3. Вам нужно использовать параметр -R в команде cp чтобы скопировать каталог и его содержимое.

  4. / home не является вашим домашним каталогом. / home / username есть. Поэтому вы, вероятно, пытаетесь скопировать из-за неправильного места.

  5. Оболочка чувствительна к регистру, поэтому ~ / downloads и ~ / Downloads – это две разные вещи.

Когда вы копируете каталог, например:

cp dir1 copy_of_dir1

Вы только и точно копируете сам dir1 , а не файлы внутри него, поэтому в конце вы получите новую структуру каталогов, в то время как структура не существует.

Другими словами, после того, как он был скопирован, он скажет, что мое содержимое – file1 , file2 и т. Д .; Однако эти файлы не были скопированы и, таким образом, не существуют в нем.

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

Причина, по которой он говорит, что omitting directory – это то, что cp и все утилиты копирования, о которых я знаю, создают список файлов и подкаталогов, которые нужно скопировать, прежде чем приступать к копированию файлов. Когда параметры --recursive отсутствуют, суб-каталоги сбиваются с этого списка. Таким образом, опускание относится к удалению из списка копий, а не к исходному медиа. Я считаю, что это касается смысла сообщения.

Предположим, у вас есть два каталога «Tag» и «Test»,

Если вы хотите скопировать каталог «Tag» в команду «Test» использовать команду

$ : cp -r Tag Test (case sensitive)

В основном проблема будет решена с помощью выше кода, если нет, и вы получите сообщение ниже

cp: omitting directory `Tag' cp: omitting directory `Test'

затем добавьте некоторые файлы в каталог «Tag», а затем скопируйте их в «Test». На самом деле у меня есть одна и та же проблема, но она решена так, как я сказал во-вторых.

ubuntu.fliplinux.com

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

Provided by: manpages-ru_0.98-4_all
ИМЯ
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; другие версии могут иметь небольшие отличия. Исправления и дополнения присылайте по адресу [email protected]. Сообщения об ошибках в этой программе присылайте по адресу [email protected].
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <[email protected]> 2003

manpages.ubuntu.com

cp Ubuntu Linux

Как найти файлы и скопировать в существующую папку в одной команде?

Например: find /usr -type f -name "*.txt" -exec cp -r {} ~/txts/ \; Прекрасно работает в случае, если у нас есть существующие txt-файлы. Насколько я понимаю – cp не имеет флагов для разрешения этого дела. Может быть, я должен использовать rsync или что-то еще?

Ошибка при использовании «cp» для копирования файлов на внешний диск

У меня есть внешний жесткий диск 2 Тбайт, отформатированный exFat, который я использую для обмена очень большими файлами (> 10 ГБ) среди Ubuntu, Windows 7 и MacOS. Я пытаюсь скопировать все содержимое каталога, используя sudo cp -r . /media/user/WD2TB Но я получаю следующий вывод к тому, что кажется очень длинным именем файла cp: cannot create […]

cp -u копирует все файлы, а не только новые

Я source скрипт, который говорит что-то вроде cp -vau /home/jordan/local-directory/ -t /media/jordan/A368-480F/BACKUP/ , вот и все. A368-480F/ – это каталог, который появляется, когда я подключаю USB-порт к компьютеру. В первый раз, когда я называю это, он делает то, что я хочу, и копирует файлы. Если я снова вызову его без отсоединения USB, скрипт ничего не […]

Что происходит, когда вы принудительно завершаете операцию каталога `mv` между двумя дисками?

Другой способ сформулировать вопрос: Что происходит, когда вы mv каталогом между двумя дисками? Перемещает ли он один файл за другим или копирует все файлы в пункт назначения, а затем удаляет каталог из источника? Если он сначала копирует все, а затем удаляет его, я могу предположить, что безопасно принудительно выйти из операции mv . В противном […]

Не удалось скопировать файлы с сервера linux

При копировании файлов с сервера Linux на внешний жесткий диск отображается сообщение об ошибке Недостаточное пространство на жестком диске Жесткий диск составляет 2 ТБ, а размер данных для копирования – 460 ГБ. Почему в любом случае это сообщение об ошибке? Обновления: Я отформатировал жесткий диск как FAT. Пока я использовал NTFS, жесткий диск не мог […]

Есть ли способ создать резервную копию файла, без указания его имени дважды?

Часто, когда я редактирую какой-либо системный файл, сначала создаю резервную копию. Например: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak Есть ли простой «ярлык», например: sudo cp /etc/ssh/sshd_config %s.bak ?

Как скопировать каталог в себя?

Я могу скопировать каталог следующим образом: ~$ cp -r ./Desktop/ /tmp/ Точно так же, если бы я просто хотел скопировать файлы из каталога, я мог бы сделать это: ~$ cp -r ./Desktop/. /tmp/ Все становится немного сложнее, если я хочу скопировать исходный каталог в целевой каталог, то есть подкаталог источника. т.е. скопировать каталог в себя. […]

cp проблемы с копированием root

У меня есть небольшой скрипт bash, который проверяет, была ли резервная копия системы сегодня, а если нет, то она копирует всю файловую систему в папку резервных копий: date=$(date +"%m%d%y") sudo mkdir -p "/backups/system/$date" sudo cp -r "/" "/backups/system/$date" Моя проблема в том, что когда я вхожу в это, это дает мне следующие ошибки: cp: error […]

Копирование нескольких файлов с успехом

Я хочу иметь возможность копировать несколько файлов с нескольких USB-флеш-дисков одновременно, имея возможность одновременно просматривать текущую скорость передачи. Это часть тестирования производительности для USB-порта на конкретной плате. Используя pv source > /dev/null из этого ответа , я могу видеть текущую скорость передачи для одного файла. Однако, когда я использую pv source > /dev/null & чтобы […]

ubuntu.fliplinux.com