Co znamená "cp: vynechání adresáře"?

367

Dal jsem následující příkaz:

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

Když to udělám, začnu přijímat následující zprávy:

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' 

a tak dále ...

Proč dostanu tyto zprávy?

    
dané MEM 18.04.2011 17:11

6 odpovědí

479

Ve výchozím nastavenícp zkopíruje pouze adresáře v adresáři a ne podadresáře. Zprávacp: omitting directory 'directory' vás varuje, že uvedený adresář není zkopírován.

Chcete-li tak učinit, zadejte možnost-r (nebo--recursive):

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

manuální stránka (příkaz:man cp) obsahuje přehled dostupných možností.

    
odpověděl Lekensteyn 18.04.2011 17:15
34

Zpráva znamená, žecp nekopíroval uvedené adresáře. Toto je výchozí chování procp - pouze soubory jsou zkopírovány normálně, bez ohledu na to, zda je výslovně specifikujete nebo používáte*. Pokud chcete kopírovat adresáře, použijte přepínač-r, což znamená "rekurzivní".

    
odpověděl Roger Light 18.04.2011 17:15
14

Pár věcí, které je třeba zkontrolovat:

  1. Nepoužívejtesudo. Nepotřebujete to, už máte oprávnění k psaní ve vašem domovském adresáři.

  2. Můžete snadno zobrazit skryté soubory a adresáře v grafickém správci souborů výběrem Zobrazit / Zobrazit skryté soubory z nabídky. Nebo stisknutím Ctrl - H .

  3. Pro kopírování adresáře a jeho obsahu je třeba použít volbu-R v příkazucp.

  4. / home není vaším domovským adresářem. / home / uživatelské jméno je. Takže se pravděpodobně pokoušíte kopírovat z nesprávného místa.

  5. Shell rozlišuje velká a malá písmena, takže ~ / downloads a ~ / Downloads jsou dvě různé věci.

odpověděl Nikunj K. 04.10.2013 09:02
2

Při kopírování adresáře jako:

cp dir1 copy_of_dir1

Pouze kopírujetedir1 a ne soubory v něm, takže na konci skončíte s novou adresářovou strukturou, zatímco struktura neexistuje.

Jinými slovy poté, co byl zkopírován, řekne, že můj obsah jefile1,file2, etc; Tyto soubory však nebyly zkopírovány, a proto v nich neexistují.

Chcete-li opravit tento problém, který může přijítcp ve výchozím nastavení nekopíruje adresáře a přeskočí je, pokud nezadáte možnost-r, která také rekurzivně zkopíruje všechny soubory.

    
odpověděl Ravexina 03.07.2017 09:47
1

Důvod, proč se uvádí, žeomitting directory je, protožecp a všechny nástroje pro kopírování, které znám, vytváří seznam souborů a podadresářů, které mají být zkopírovány, než začnete kopírovat soubory. Pokud chybí možnosti--recursive, podadresáře se od tohoto seznamu liší. Jako takové, vynechání odkazuje na odstranění ze seznamu kopií, nikoliv ze zdrojového média. Věřím, že se to týká významu zprávy.

    
odpověděl endrias 24.07.2017 10:32
-1

Předpokládejme, že máte dva adresáře 'Tag' & 'Test'

Pokud chcete zkopírovat adresář 'Tag' do adresáře 'Test', použijte příkaz

$ : cp -r Tag Test (case sensitive)

Většinou problém bude vyřešen výše uvedeným kódem, pokud ne, a dostanete se pod zprávu, jako je

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

přidejte některé soubory do adresáře 'Tag' a pak je zkopírujte do 'Test'. Vlastně bych měl stejný problém, ale vyřešil jsem to, co jsem řekl za druhé.

    
odpověděl jainmiah shaik 03.07.2017 09:14