Melhor maneira de copiar vários diretórios para um novo diretório

33

Existe uma maneira melhor na linha de comando para realizar essencialmente o seguinte, mas com um único comando

cp -r css/ ar/
cp -r images/ ar/
cp -r js/ ar/
cp -r backups/ ar/

Acabei de uni-los com um ponto e vírgula.

Jeff Schaller
fonte

Respostas:

63

Copiando pastas para outra pasta (pasta na pasta):

cp -r css images js backups ar/

Nota: isso é diferente de copiar apenas o conteúdo em si (conteúdo das pastas na pasta):

cp -r css/ images/ js/ backups/ ar/
Porton
fonte
4
as barras fazem a diferença! sempre suspeitou, nunca soube #
Peter Perháč
2
barras não fazem diferença nos meus testes. cpnão é rsync. no entanto cp -r css/. images/. ar/, copia o conteúdo sem os diretórios. minha versão cp é "cp (GNU coreutils) 8.29".
precisa saber é o seguinte
1

A resposta é simples e funciona no Debian "é assim que eu fiz" (testado), digamos que você esteja no / etc e queira copiar alguns arquivos e pastas antes de formatar seu disco rígido (por algum motivo) digite o seguinte e tudo mencionado abaixo será copiado para a pasta / mybackups / :

sudo cp -r -a apt/ bash.bashrc environment hosts init.d/ init/ nginx/ proxychains.conf sudoers sysctl.d/ profile.d/ grub.d/ /boot/grub/ /opt/ /root/ /var/www/ /mybackups/

como você pode ver acima, tentei copiar pastas de fora etc , apontando para a sua localização como / boot / grub / ou / opt / e funcionou!

M03
fonte
1
Eu acredito que -r não é necessário, pois -a já o contém (via: man).
David Potočnik
-2

Você não pode copiar dois diretórios usando o cpcomando sozinho.

Você pode copiar recursivamente usando a -ropção.

Por exemplo:

cp -r <source> <destination> 
suman
fonte