Copiar arquivos é uma das tarefas mais básicas, mas cruciais que você estará fazendo regularmente.
O Linux tem um comando cp
dedicado para copiar arquivos e diretórios (pastas).
Neste tutorial, você aprenderá a copiar arquivos e pastas no terminal.
Copiando arquivos na linha de comando do Linux
Vamos mostrar-lhe alguns exemplos de cópia de arquivos.
Copiar um arquivo para outro diretório
Para copiar um arquivo para outro diretório, tudo o que você precisa fazer é seguir a sintaxe de comando fornecida:
cp Arquivo_de_origem Diretorio_de_destino
Por exemplo, aqui, copiamos um arquivo chamado Ola.txt
para o diretório chamado Tux
:
E como você pode ver, o arquivo foi copiado com sucesso para o diretório Tux
.
Copiando o arquivo, mas o renomeando
Você pode optar por renomear o arquivo ao copiá-lo. Basta dar um nome diferente ao 'arquivo de destino'.
cp Arquivo_de_origem Arquivo_renomeado
Para referência, aqui, copiamos um arquivo chamado Ola.txt
para o mesmo diretório, renomeando-o para Outro_nome.txt
:
Por que você faria isso? Digamos, você tem que editar um arquivo de configuração. Uma boa prática é fazer um backup do arquivo de configuração no mesmo local antes de editá-lo. Dessa forma, você pode reverter para a configuração antiga se as coisas não saírem como planejado.
Copiando vários arquivos para outro local
Para copiar vários arquivos para outro diretório, execute o comando da seguinte maneira:
cp Arquivo1 Arquivo2 Arquivo3 ArquivoN Diretorio_de_destino
Aqui, copiamos vários arquivos para um novo local.
Quando você está copiando vários arquivos, renomeá-los não seria possível apenas com o comando cp
.
Lidando com arquivos duplicados durante a cópia
Por padrão, o comando cp substituirá o arquivo se um arquivo com o mesmo nome existir no diretório de destino.
Para evitar a substituição, você pode usar a opção -n
com o comando cp e ela não substituirá os arquivos existentes:
cp -n Arquivo_de_origem Diretorio_de_destino
Por exemplo, aqui, tentamos copiar dois arquivos que já estavam lá no meu diretório de destino e usamos -v
opção para mostrar o que está sendo feito pelo comando:
Copiando arquivos interativamente
Mas e quando você quiser substituir alguns arquivos, enquanto alguns devem ser mantidos intactos?
Bem, você pode usar o comando cp
no modo interativo usando a opção -i
, e ele perguntará a você cada vez se o arquivo deve ser substituído ou não:
cp -i Arquivo_de_origem Diretorio_de_destino
Pratique você mesmo todos os exemplos acima discutidos. Você já sabe sobre como criar arquivos e pastas, então recrie tudo.
Copiando diretórios na linha de comando do Linux
Há comando mkdir
para criar novos diretórios, rmdir
para remover diretórios (vazios). Mas não há nenhum comando cpdir
para copiar diretórios.
Você terá que usar o mesmo comando cp
, mas com a opção recursiva -r
copiar um diretório com todo o seu conteúdo para outro local:
cp -r Diretorio_de_origem Diretorio_de_destino
Por exemplo, aqui, copiamos um diretório chamado IF
para LHB
:
Mas aqui ele copiou todo o diretório.
Então, o que você faz quando deseja apenas copiar o conteúdo do diretório, não o diretório em si?
Veja o que você pode fazer:
Copiando apenas o conteúdo de um diretório (não o diretório)
Para copiar apenas o conteúdo do diretório, não o diretório em si, você acrescenta /.
no final do nome do diretório de origem:
cp -r Diretorio_de_origem/. Diretorio_de_destino
Aqui, queremos copiar o conteúdo de um diretório chamado IF
que contém os dois arquivos a seguir:
E vamos executar o seguinte comando para copiar o conteúdo do arquivo do diretório IF
para LHB
:
cp -r IF/. LHB
Você também pode usar Diretorio_de_origem\*
aqui.
Copiando vários diretórios
Para copiar vários diretórios, você terá que executar o comando da seguinte maneira:
cp -r Dir1 Dir2 Dir3 DirN Diretorio_de_destino
Por exemplo, aqui, copiamos dois diretórios chamados IF
e LU
para o LHB
:
Você pode fazer o mesmo quando quiser copiar arquivos de vários diretórios, mas não do diretório em si:
cp -r Dir1/. Dir2/. Dir3/. DirN/. Diretorio_de_destino
Você também pode renomear os diretórios da mesma forma que renomeou os arquivos.
Teste seus conhecimentos
Agora, vamos ver o quanto você se lembra das lições aprendidas até agora.
- Crie um diretório chamado
testando_copia
- Copie o arquivo
/etc/services
para esta pasta recém-criada - Crie uma pasta chamada
secrets
sob este diretório e copie os arquivos/etc/passwd
e/etc/services
nele - Copie o arquivo
services
emtestando_copia
para a pastasecrets
, mas não o substitua - Copie a pasta
secrets
para o seu diretório pessoal
Isso lhe daria alguma prática.