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

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 padrão, cp copia apenas os arquivos diretos e não os subdiretórios no diretório. Mensagem cp: omitting directory 'directory' avisa que o diretório mencionado não é copiado.

Para fazer isso, especifique o -r (ou --recursive) Opcao:

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

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

A mensagem significa que cp não copiou os diretórios listados. Este é o comportamento padrão para cp - apenas os arquivos são copiados normalmente, independentemente de você estar especificando-os explicitadamente ou usando *. Se você quiser diretórios copiar usar o -r switch que significa "recursivo".

Algumas coisas aqui que precisam verificar:

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

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

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

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

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

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

cp dir1 copy_of_dir1

Você está apenas e exatamente copiando o dir1 em si e não os arquivos dentro dele, então no final você vai acabar com uma nova estrutura de diretório enquanto a estrutura não existe.

Em outras palavras, depois de ter sido 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 esse problema que pode surgir cp por padrão, não copia os diretórios e os ignora, a menos que você especifique -r opção que copia todos os arquivos recursivamente também.

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

O cp comando é usado para copiar arquivos e diretório, não os diretórios aninhados, se você quiser copiar diretórios de aninhamento, então você pode adicionar -R depois disso, onde-r significa recursivo.

Sintaxe que você pode seguir (executando como root):

cp -r /source/dir/* /destination/ 

ou

cp --recursive /source/dir/* /destination/

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

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ê recebe a mensagem abaixo como

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

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