Copie todos os arquivos de um local para outro no Linux, sem copiar o próprio diretório

0

Eu quero copiar alguns ou todos os arquivos de um diretório test/A/ para o diretório test/B/ , mas sem copiar o próprio diretório A.

Eu tentei o comando cp -R test/A/ test/B , mas ele copia o diretório e os arquivos também e se torna test/B/A/

    
por Ahmed Alsayadi 09.01.2013 / 13:05

2 respostas

2

Quando você especifica test/A/ , você diz ao Bash para copiar o diretório em si.

Para copiar apenas o conteúdo de um diretório, use o * glob :

cp -R test/A/* test/B

Aqui, * corresponderá a todos os arquivos em A, exceto os ocultos com um ponto, por exemplo, %código%. Para incluí-los também com um .htaccess , chame * antes.

    
por 09.01.2013 / 13:11
0

para obter uma cópia idêntica local ou remota, prefiro rsync over cp . Isso lhe dá um controle muito melhor sobre o que deve ser copiado ou mesmo excluído na origem ou no destino, se desejado. E, a propósito, corrige problemas com arquivos ocultos (também conhecidos como .* ). O uso básico é tão simples quanto com cp .

para copiar um diretório A e seu conteúdo para B use:

rsync -va test/A test/B

para copiar o conteúdo do diretório A (incluindo arquivos ocultos) para B use:

rsync -va test/A/ test/B

se B não existe, é criado

    
por 09.01.2013 / 17:03

Tags