O que significa "cp: omitindo diretório"?

348

Eu emiti o seguinte comando:

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

Quando faço isso, começo a receber as seguintes mensagens:

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' 

e assim por diante ...

Por que recebo essas mensagens?

    
por MEM 18.04.2011 / 17:11
fonte

6 respostas

453

Por padrão, cp copia apenas os arquivos diretos e não os subdiretórios no diretório. A mensagem cp: omitting directory 'directory' avisa que o diretório mencionado não foi copiado.

Para isso, especifique a opção -r (ou --recursive ):

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

A página de manual (comando: man cp ) contém uma visão geral das opções disponíveis.

    
por Lekensteyn 18.04.2011 / 17:15
fonte
33

A mensagem significa que cp não copiou os diretórios listados. Esse é o comportamento padrão para cp - somente os arquivos são copiados normalmente, independentemente de você os especificar explicitamente ou usar * . Se você quiser que os diretórios copiem, use a opção -r , que significa "recursiva".

    
por Roger Light 18.04.2011 / 17:15
fonte
13

Algumas coisas aqui precisam ser verificadas:

  1. Não use sudo . Você não precisa, você já tem permissão para escrever coisas em seu próprio diretório pessoal.

  2. Você pode visualizar facilmente arquivos e diretórios ocultos no gerenciador de arquivos gráficos selecionando Visualizar / Mostrar Arquivos Ocultos no menu. Ou pressionando Ctrl - H .

  3. Você precisa usar a opção -R no comando cp para copiar um diretório e seu conteúdo.

  4. / home não é seu diretório inicial. / home / nome de usuário é. Então você provavelmente está tentando copiar do lugar errado.

  5. O shell diferencia maiúsculas de minúsculas, portanto ~ / downloads e ~ / Downloads são duas coisas diferentes.

por Nikunj K. 04.10.2013 / 09:02
fonte
1

Quando você está copiando um diretório como:

cp dir1 copy_of_dir1

Você está copiando apenas e exatamente o dir1 em si e não os arquivos nele, então, no final, você terá uma nova estrutura de diretórios enquanto a estrutura não existir.

Em outras palavras, depois que ele for copiado, ele dirá que meu conteúdo é file1 , file2 , etc; No entanto, esses arquivos não foram copiados e, portanto, não existem nele.

Então, para corrigir este problema, que pode surgir cp por padrão, não copia os diretórios e os ignora, a menos que você especifique a opção -r , que copia todos os arquivos recursivamente também.

    
por Ravexina 03.07.2017 / 09:47
fonte
0

O motivo que diz omitting directory é porque cp e todos os utilitários de cópia, que eu conheço, criam uma lista de arquivos e subdiretórios para serem copiados antes de começar a copiar os arquivos. Quando as opções --recursive estão faltando, os subdiretórios são removidos desta lista. Como tal, omitir refere-se à remoção da lista de cópias, não da sua mídia de origem. Eu acredito que isso aborda o significado da mensagem.

    
por endrias 24.07.2017 / 10:32
fonte
-2

Suponha que você tenha dois diretórios 'Tag' & amp; 'Teste'

Se você deseja copiar o diretório 'Tag' para o comando 'Test' directory use

$ : cp -r Tag Test (case sensitive)

Principalmente O problema será resolvido com o código acima, se não, e você receberá uma mensagem como

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

adicione alguns arquivos no diretório 'Tag' e copie-os para 'Test'. Na verdade eu tenho o mesmo problema, mas resolvi como o que eu disse em segundo lugar.

    
por jainmiah shaik 03.07.2017 / 09:14
fonte