Eu quero copiar um diretório de um lugar para outro através da linha de comando

127

Quero copiar um diretório de um lugar para outra pasta.

sudo cpé o comando, mas depois disso o que devo digitar? O destino ou origem primeiro?

pradeep
fonte
10
Será que man cpajuda?
Portablejim

Respostas:

198

A -abandeira é provavelmente o que você está procurando:

cp -a /path/from /path/to

O -asinalizador ativa o comportamento recursivo (que também pode ser feito com o -Rsinalizador) e também tentará preservar metadados, como propriedade do arquivo, permissões, registros de data e hora, links etc.

Você só precisa usar sudose estiver copiando para um local não pertencente ao usuário atual, se o usuário atual não tiver permissões de leitura para os arquivos que estão sendo copiados ou se desejar preservar a propriedade dos arquivos que não pertencem ao usuário atual. do utilizador.

James Henstridge
fonte
4
além disso, como regra geral, é sempre assim [command] [source] [destination]. Isso se aplica a mv, cp, ren.
Vineet Menon
11
@ VinineMenon Você provavelmente quer dizer mv, não ren.
Jcollado #
@jcollado: eu já adicionei mv!!
Vineet Menon
@ VinineMenon Sim, você está certo, eu não vi isso mvjá estava na lista. Enfim, o que quero dizer é que, até onde eu sei, não há nenhum rencomando (a menos que você tenha um apelido ou algo definido).
Jcollado
11
@jcollado: haha ​​... esse era meu apelido para rename...: D
Vineet Menon
28

Se você deseja copiar o diretório, use o comando abaixo:

sudo cp -R Source_Folder Destination_Folder

Este comando também pode ser usado para copiar arquivos, apenas removendo o "-R", que é usado para copiar a estrutura recursiva das pastas internas (se houver alguma no caminho Source_Folder que mencionamos).

Mais um exemplo:

sudo cp -R /var/www/* /home/test_user/

Por favor, sinta-se livre para deixar um comentário em caso de qualquer problema.

Hrish
fonte
7

Para copiar a pasta via terminal, você pode usar

cp -a /source/. /dest/

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

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

Uma alternativa é rsync

rsync -r source/ destination
shail
fonte
2

Eu acho que a melhor maneira é usar o gksu nautiluscomando e você pode copiar o que quiser com a GUI comum, como de costume.

Af Vtr
fonte
11
Isso pressupõe que você esteja usando uma GUI e não a CLI.
Phill Healey