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?
*
é expandido pelo Bash, não porcp
. Teste você mesmo colocandoecho
na frente do seu comando. Quando expandido, combina tudo com o anterior...library/Zend/
(os arquivos e diretórios nele).omitting directory 'directory'
isso não significa que está excluindo esse diretório.chmod a+rx ~/
depois que tentei copiar comcp /home/2110/* /home/2111/
ele produz um erro que indica permissão negada. onde eu estava errado. Desculpe comentar, porque eu não posso fazer perguntas duplicadas. eu espero pela resposta rápida :)/home/2110
pertencem ao usuário 2110, enquanto os arquivos in/home/2111
pertencem ao 2111. Para definir o proprietário, use algo comosudo chown -R 2111 /home/2111
.A mensagem significa que
cp
não copiou os diretórios listados. Esse é o comportamento padrão paracp
- apenas os arquivos são copiados normalmente, independentemente de você estar especificando-os explicitamente ou usando*
. Se você deseja copiar diretórios, use a-r
opção que significa "recursiva".fonte
Algumas coisas aqui que precisam ser verificadas:
Não use
sudo
. Você não precisa, você já tem permissão para escrever coisas em seu próprio diretório pessoal.Você pode visualizar facilmente arquivos e diretórios ocultos no gerenciador de arquivos gráfico, selecionando Exibir / Mostrar arquivos ocultos no menu. Ou pressionando Ctrl- H.
Você precisa usar a
-R
opção nocp
comando para copiar um diretório e seu conteúdo./ home não é seu diretório pessoal. / home / nome de usuário é. Então você provavelmente está tentando copiar do lugar errado.
O shell diferencia maiúsculas de minúsculas, portanto ~ / downloads e ~ / Downloads são duas coisas diferentes.
fonte
Quando você está copiando um diretório como:
Você está apenas e exatamente copiando o
dir1
arquivo em si e não os arquivos nele; portanto, no final, você terminará com uma nova estrutura de diretórios enquanto a estrutura não existir.Em outras palavras, depois de ter sido copiado, ele vai dizer que os meus conteúdos é
file1
,file2
, etc; No entanto, esses arquivos não foram copiados e, portanto, não existem nele.Portanto, para corrigir esse problema que pode surgir
cp
por padrão, não copie os diretórios e os ignore, a menos que você especifique a-r
opção que copia todos os arquivos também recursivamente.fonte
A razão
omitting directory
é porquecp
todos os utilitários de cópia que eu conheço criam uma lista de arquivos e subdiretórios a serem copiados antes de começar a copiar os arquivos. Quando as--recursive
opções estão ausentes, os subdiretórios são eliminados desta lista. Dessa forma, omitir refere-se à remoção da lista de cópias, não da mídia de origem. Eu acredito que isso aborda o significado da mensagem.fonte
O comando cp é usado para copiar arquivos e diretório, não os diretórios aninhados, se você deseja copiar diretórios de aninhamento, é possível adicionar -r depois disso, em que -r significa recursivo.
Sintaxe que você pode seguir (executando como root):
ou
fonte
omitirá os subdiretórios em primeira instância se você não estiver usando o sinalizador -r, que faz cópias recursivas.
destino de origem cp -r
-r diga para fazer recursivamente. Significado para copiar tudo o que está nas pastas etc.
fonte
Suponha que você tenha dois diretórios 'Tag' e 'Test'
Se você deseja copiar o diretório 'Tag' para o diretório 'Test', use o comando
Principalmente o problema será resolvido com o código acima, se não, e você receberá a mensagem abaixo como
adicione alguns arquivos no diretório 'Tag' e copie-os para 'Teste'. Na verdade, eu tenho o mesmo problema, mas resolvi como o que eu disse em segundo lugar.
fonte