Como posso copiar o conteúdo de uma pasta para outra pasta em um diretório diferente usando o terminal?

490

Estou tentando copiar o conteúdo de uma pasta para outra pasta em um diretório diferente usando o terminal.

Alguém poderia me fornecer um exemplo da sintaxe da linha de comando necessária para conseguir isso?

    
por pandisvezia 11.12.2011 / 02:19

5 respostas

737

Você pode copiar o conteúdo de uma pasta /source para outra pasta existente /dest com o comando

cp -a /source/. /dest/

A opção -a é uma opção recursiva aprimorada, que preserva todos os atributos de arquivo e também preserva links simbólicos.

O . no final do caminho de origem é uma sintaxe cp específica que permite copiar todos os arquivos e pastas, incluindo os ocultos.

    
por enzotib 11.12.2011 / 13:01
92

Uma alternativa é rsync

rsync -r source/ destination

As vantagens do rsync são:

  1. Após a sincronização inicial, copiará apenas os arquivos que foram alterados.

  2. Você pode usá-lo em uma rede, conveniente para arquivos em $ HOME, especialmente arquivos de configuração.

por Panther 11.12.2011 / 04:59
54

Digamos que você tenha uma pasta chamada folder1 em seu ~ , dentro folder1 é um arquivo chamado arquivo1 e 2 pastas chamadas < em> sub1 e sub2 , cada um com outros arquivos e pastas dentro deles.

Para copiar todo o conteúdo de ~/folder1 para ~/new_folder1 você usaria

cp -r ~/folder1/. ~/new_folder1

new_folder1 conteria todos os arquivos e pastas de folder1 .

cp é o comando para copiar usando um terminal, -r faz recursivamente (assim, diretório atual + diretórios adicionais dentro da atual) ~/folder1 é a pasta de origem, ~/new_folder1 é a pasta de destino dos arquivos / pastas dentro da origem.

    
por Bruno Pereira 11.12.2011 / 02:23
13

Verifique este link para obter mais informações sobre como copiar a pasta. Espero que isso ajude.

cp Command

cp é um comando do Linux para copiar arquivos e diretórios. A sintaxe é a seguinte:

cp source destination
cp dir1 dir2
cp -option  source destination
cp -option1 -option2  source destination

Neste exemplo, copie a pasta /home/vivek/letters e todos os seus arquivos para o diretório /usb/backup :

cp -avr /home/vivek/letters /usb/backup

Onde,

-a : Preserva os atributos especificados, como diretório, modo de arquivo, propriedade, registros de data e hora, se possível, atributos adicionais: contexto, links, xattr, all.

-v : Explique o que está sendo feito.

-r : copiar diretórios recursivamente. Exemplo

Copie uma pasta chamada / tmp / conf para / tmp / backup:

$ cp -avr /tmp/conf/ /tmp/backup
    
por Dilip Rajkumar 25.11.2014 / 06:53
2

Se houver duas pastas: (com permissão de gravação)

drwxr-xr-x 4 vimal vimal  4096 Sep  9 12:17 .
drwxr-xr-x 3 root  root   4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal  4096 Sep  9 12:15 DATA
drwxrwxrwx 7 vimal vimal  4096 Sep  9 12:15 PORTAL

Se você estiver dentro da pasta chamada PORTAL, onde deseja copiar todo o conteúdo de outra pasta, diga DATA no mesmo nível então você vai fazer

vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .

Você tem que notar 2 pontos. Último ponto diz cópia aqui na pasta atual

e

um seguimento / DATA /. diz que todo o conteúdo dentro da pasta DATA para ser copiado, e não a própria pasta DATA.

Se você remover esse "" final. " de / DATA /

então toda a pasta DATA será copiada dentro do PORTAL (de onde você está lidando).

    
por vimal krishna 09.09.2015 / 12:39