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

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

Quero copiar alguns ou todos os arquivos de um diretório test/A/para directory 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 fica test/B/A/

Responder1

Ao especificar test/A/, você diz ao Bash para copiar o próprio diretório.

Para copiar apenas o conteúdo de um diretório, useo *globo:

cp -R test/A/* test/B

Aqui, *corresponderá a todos os arquivos em A, exceto os ocultos prefixados com um ponto, por exemplo .htaccess, . Para incluí-los também com um *, ligue shopt -s dotglobantes.

Responder2

para obter uma cópia idêntica localmente ou remotamente, eu rsyncpreferiria cp. Isso lhe dá um controle muito mais preciso sobre o que deve ser copiado ou até 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 cp.

para copiar um diretório Ae seu conteúdo para Busar:

rsync -va test/A test/B

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

rsync -va test/A/ test/B

se B não existe ele é criado

informação relacionada