Como posso copiar arquivos de uma pasta para outra pasta no terminal Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Quando você precisar copiar o conteúdo de um diretório para outro, no caso do Linux, existem muitas ferramentas à sua disposição. Qual usar? Depende da situação e da preferência pessoal. Neste artigo, veremos maneiras de copiar o conteúdo do arquivo de uma pasta para outra no terminal. Ele apresentará algumas das escolhas populares para diferentes situações.

Cópia de arquivo no terminal

Copiar o conteúdo de um diretório para outro é uma tarefa muito simples. No entanto, você tem muitas opções para fazer isso. O Linux é abençoado com inúmeras ferramentas para manipular arquivos e diretórios por meio de várias ações.







Todas as etapas são demonstradas no Ubuntu 18.04.1. Em primeiro lugar, vamos criar um punhado de arquivos fictícios para trabalhar.



$mkdir -vdir_A



Agora, vamos criar os arquivos fictícios usando o toque.





$tocarfictício{1..10}

Vamos criar outra pasta dentro de dir_A com um punhado de arquivos fictícios.



$mkdir -vdir_B
$tocarfictício{1..10}

Agora, toda a estrutura do diretório dir_A se parece com isso.

$árvoredir_A

Comando Cp

o cp comando é, de longe, a ferramenta mais comum para copiar arquivos. É uma ferramenta que vem por padrão com qualquer sistema Linux. Copiar arquivos e diretórios é o único propósito do cp. Ele oferece suporte a uma ampla gama de recursos.

Esta é a estrutura básica do cp comando.

$cp <opções> <fonte> <destino>

Por exemplo, vamos fazer uma cópia do dummy1 arquivo com o nome dummy1_copy .

$cpdummy1 dummy1_copy

Agora, vamos tentar copiar vários arquivos de uma vez. Para tal operação, cp requer que o destino seja um diretório. Aqui, estarei usando a expressão curinga para capturar todos os fictício arquivos e colocá-los no ~ / Downloads diretório.

$cpfictício*~/Transferências

Que tal copiar um diretório?

$cp -vrdir_A dir_A_copy

Aqui, usamos duas bandeiras diferentes. Vamos fazer uma análise rápida deles.

  • -r: Significa um recursivo cópia (incluindo qualquer arquivo (s) oculto (s)). Sinalizador obrigatório se a cópia envolver um diretório inteiro ou mais.
  • -v: Significa prolixo . A ferramenta cp produzirá cada ação que está executando.

Quer seguir os links simbólicos? Adicione o sinalizador -L.

$cp -Lvr <fonte> <destino>

Digamos que o diretório de destino já tenha um arquivo com o mesmo nome. Se você quiser evitar a substituição, use o sinalizador -n. Isso garantirá que, em caso de conflito, o cp não substituirá o arquivo.

$cp -nv <fonte> <destino>

Se você estiver executando uma ação sensível de copiar / colar, é melhor ter o melhor controle sobre o que acontece, certo? Nesse caso, use o sinalizador -i. Significa um modo interativo onde o cp pedirá confirmação toda vez que surgir um conflito.

$cp -eu <fonte> <destino>

Se você estiver mais interessado, a página do manual é sempre uma das melhores documentações. Saiba mais sobre cp.

$cara cp

comando mv

A ferramenta mv é semelhante à ferramenta cp. No entanto, em vez de copiar, mv move arquivos e diretórios. Comparado ao cp, é mais simples.

A estrutura de comando de mv é semelhante a cp.

$mv <opção> <fonte> <destino>

Para mover o conteúdo de dir_A para dir_A_copy , execute o seguinte comando.

$mv -vdir_A/dir_A_copy

Aqui, o sinalizador -v é para prolixo modo. Se você deseja mover apenas o conteúdo de dir_A, use o seguinte. Neste caso, o diretório de destino deve existir previamente.

$mv -vdir_A/ *dir_A_copy

A ferramenta mv não tem muito com o que trabalhar. Para todas as opções disponíveis, verifique a página do manual.

$cara mv

Comando Rsync

Esta é uma das ferramentas mais populares e poderosas para cópia de arquivos, usada principalmente para backup. Ele possui a capacidade de copiar arquivos por meio de uma conexão remota. Ao contrário de cp e mv, ele também vem com uma tonelada de opções avançadas de cópia de arquivos que oferecem o máximo de personalização de seu comportamento.

Rsync é principalmente famoso por seu algoritmo de transferência delta que reduz drasticamente a quantidade de dados que precisam ser trocados. No caso de sincronização remota, isso economiza muita largura de banda.

O Rsync geralmente não vem pré-instalado em nenhuma distribuição Linux. No entanto, por causa de sua popularidade, agora está disponível em todas as principais distros Linux. Usar Pkgs.org para descobrir o pacote rsync para sua distro. Supondo que você tenha o rsync instalado, vamos começar.

Primeiro, a estrutura básica de comando do rsync. É bastante semelhante ao cp.

$rsync<opções> <fonte> <destino>

Antes de começar, aqui estão alguns argumentos populares de rsync.

  • -v : Modo detalhado, exibe qualquer ação que está sendo executada na tela do console.
  • -vv : Modo detalhado com mais detalhes
  • -r : Modo recursivo, deve estar presente se estiver copiando diretórios
  • -Com : Comprimir dados
  • -para : Arquivo de dados
  • -n : Operação a seco, deve ser executada em combinação com o modo detalhado. Simplesmente exibe as ações se o comando fosse executado de verdade
  • -excluir : Exclua o (s) arquivo (s) e diretório (s) no diretório de destino se o diretório de origem não os contiver mais
  • -nenhum-arquivo-inteiro : Força o rsync a usar seu algoritmo de transmissão delta, aconteça o que acontecer. Útil em cenários onde você deve garantir a menor quantidade de gravação de dados.
  • –Remove-source-file : Exclua o (s) arquivo (s) de origem após a cópia.

Vamos verificá-los em ação. Primeiro, a cópia do diretório. Execute o seguinte comando.

$rsync-vrdir_A/dir_A_copy

Para uma saída mais detalhada, vamos usar o sinalizador -vv.

$rsync-vv -rdir_A/dir_A_copy

Agora, vamos verificar a parte legal do rsync. Discutimos como o rsync copia de forma inteligente apenas os arquivos modificados, economizando largura de banda e gravação em disco. É hora de verificar isso em ação. Neste exemplo, a ação será realizada dentro do dir_A diretório.

$rsync-vv - nenhum arquivo inteirofictício*dir_B/

Apesar da transmissão delta habilitada, o rsync pode não se aplicar quando você estiver realizando uma transferência local de dados.

Agora, vamos verificar o recurso de simulação. Antes de executar qualquer comando rsync de verdade, é sempre importante que você o teste com antecedência. É aqui que entra a simulação. O Rsync mostrará o que acontecerá se o comando realmente for executado.

$rsync-anvrdir_A/dir_A_copy

O Rsync também pode funcionar com diretórios remotos, sem problemas. Tudo o que precisa é uma conexão SSH adequada com as chaves SSH configuradas.

$ rsync<opção> <local_dir>
<nome do usuário> @<hospedeiro remoto>:<destino_dir>

Deseja realizar uma operação de movimentação? Para colocar isso na perspectiva do rsync, o rsync irá copiar o conteúdo do diretório de origem e, em seguida, excluir o conteúdo de origem.

$rsync-v --remove-source-files <fonte> <destino>

Confira o resultado da operação.

$árvoredir_A

$árvoredir_A_copy

Pensamentos finais

O cp e rsync são as ferramentas mais comuns que você pode usar para copiar arquivos em uma pasta no terminal Linux. Ambos também são muito bons para scripts. Apenas certifique-se de testar as funções antes da implementação.

Aproveitar!