Що означає "cp: пропущення каталогу"?

362

Я видав таку команду:

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 відповідей

473

За замовчуванням 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
джерело
34

Повідомлення означає, що cp не скопіював перелічені каталоги. Це поведінка за умовчанням для cp - лише файли копіюються нормально, незалежно від того, чи ви їх конкретно визначаєте або використовуєте * . Якщо ви хочете копіювати каталоги, використовуйте перемикач -r , що означає "рекурсивний".

    
відповідь дана Roger Light 18.04.2011 в 17:15
джерело
14

Пара речей, які потрібно перевірити:

  1. Не використовуйте sudo . Вам це не потрібно, у вас вже є права писати речі у вашому домашньому каталозі.

  2. Ви можете легко переглядати приховані файли та каталоги у графічному менеджері файлів, вибравши у меню пункт Перегляд / Показати приховані файли. Або натискаючи Ctrl - H .

  3. Для копіювання каталогу та його вмісту необхідно скористатись опцією -R у команді cp .

  4. / home не ваш домашній каталог. / home / ім'я користувача є. Тому ви, напевно, намагаєтеся скопіювати з невірного місця.

  5. Кожна оболонка є чутливою до регістру, тому ~ / завантаження та ~ / завантаження - дві різні речі.

відповідь дана Nikunj K. 04.10.2013 в 09:02
джерело
2

Коли ви копіюєте каталог, як:

cp dir1 copy_of_dir1

Ви лише точно копіюєте самий dir1 , а не файли всередині нього, так що в кінці ви отримаєте нову структуру каталогів, поки структура не існує.

Іншими словами після того, як воно буде скопійовано, він скаже, що мій зміст - file1 , file2 і т. д .; Проте ці файли не були скопійовані і, таким чином, не існує.

Таким чином, щоб вирішити цю проблему, яка може виникнути, cp за замовчуванням не копіює каталоги та пропускає їх, якщо ви не вкажете параметр -r , який копіює всі рекурсивні файли.

    
відповідь дана Ravexina 03.07.2017 в 09:47
джерело
1

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

    
відповідь дана endrias 24.07.2017 в 10:32
джерело
-1

Припустимо, у вас є два теги "каталоги" & amp; "Тест"

Якщо ви хочете скопіювати каталог "Тег" у команду "Тестувати", скористайтеся командою

$ : cp -r Tag Test (case sensitive)

Найчастіше проблема буде вирішена за допомогою вищезазначеного коду, якщо ні, і ви отримаєте повідомлення нижче, як

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

потім додайте деякі файли в тег "Тег", а потім скопіюйте їх у "Тест". Насправді я маю ту ж проблему, але вирішив, як я вже сказав другим.

    
відповідь дана jainmiah shaik 03.07.2017 в 09:14
джерело

Ознайомтеся з іншими питаннями з міткою