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

332

Я выпустил следующую команду:

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

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

cp: omitting directory 'Tag' 
cp: omitting directory 'Test' 
cp: omitting directory 'Text' 
cp: omitting directory 'TimeSync' 
cp: omitting directory 'Tool' 
cp: omitting directory 'Translate' 
cp: omitting directory 'Uri' 
cp: omitting directory 'Validate' 

и т. д.

Почему я получаю эти сообщения?

    
задан MEM 18.04.2011 в 17:11
источник

6 ответов

432

По умолчанию 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 ) содержит обзор доступных параметров.

    
ответ дан Lekensteyn 18.04.2011 в 17:15
источник
33

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

    
ответ дан Roger Light 18.04.2011 в 17:15
источник
13

Несколько вещей, которые нужно проверить:

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

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

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

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

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

ответ дан Nikunj K. 04.10.2013 в 09:02
источник
1

При копировании каталога, например:

cp dir1 copy_of_dir1

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

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

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

    
ответ дан Ravexina 03.07.2017 в 09:47
источник
0

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

    
ответ дан endrias 24.07.2017 в 10:32
источник
-2

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

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

$ : cp -r Tag Test (case sensitive)

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

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

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

ответ дан jainmiah shaik 03.07.2017 в 09:14
источник

Ознакомьтесь с другими вопросами по меткам