Como copiar arquivos e diretórios usando o terminal Linux

Suraj Joshi 30 janeiro 2023
  1. Copiar arquivos utilizando o comando cp
  2. Copiar arquivos para um diretório utilizando o comando cp
  3. Copiar Vários Arquivos
  4. Copiar Diretórios utilizando o comando cp
  5. Copiar arquivos e diretórios utilizando o comando rsync
Como copiar arquivos e diretórios usando o terminal Linux

Podemos copiar arquivos e diretórios com os comandos cp e rsync utilizando o Terminal Linux. O comando cp é geralmente utilizado para copiar arquivos enquanto o comando rsync é geralmente utilizado para copiar diretórios.

Copiar arquivos utilizando o comando cp

Utilizamos o comando cp em sistemas operacionais Linux e Unix para cópia de arquivos e diretórios.

Para copiar o conteúdo do arquivo abc.txt para outro arquivo backup.txt, utilizamos o seguinte comando:

cp abc.txt backup.txt

Ele copia o conteúdo em abc.txt para backup.txt. Aqui os dois arquivos devem estar no diretório de trabalho atual.

Se o arquivo de destino já existir, o conteúdo do arquivo de destino será sobregravado.

Podemos adicionar a bandeira -i ao comando cp para obter uma confirmação antes de copiar.

cp -i abc.txt backup.txt

Resultado:

cp: overwrite 'backup.txt'?

Se desejarmos copiar o arquivo, pressionamos a tecla Y e pressionamos a tecla Enter.

Para obter informações ou idéia do que está sendo feito utilizando o comando cp, podemos utilizar a bandeira -v com o comando cp.

cp -v abc.txt backup.txt

Resultado:

'abc.txt' -> 'backup.txt'

Mostra o conteúdo do abc.txt que está sendo copiado para backup.txt.

Copiar arquivos para um diretório utilizando o comando cp

Para copiar um arquivo para um diretório, utilizamos o comando cp. O primeiro argumento para o comando cp será o nome do arquivo a ser copiado, e o segundo argumento será o caminho absoluto ou caminho relativo do diretório no qual o arquivo precisa ser copiado.

cp abc.txt ./test

Ele copia o arquivo abc.txt no diretório de trabalho atual para a pasta no diretório de trabalho atual test.

Para copiar o arquivo no diretório específico com um nome diferente do arquivo pai, podemos especificar o nome do arquivo como:

cp abc.txt ./test/test.txt

Ele copia o arquivo abc.txt para a pasta test com o nome test.txt.

Copiar Vários Arquivos

Podemos copiar vários arquivos e diretórios para um determinado diretório utilizando o comando cp especificando todos os arquivos e diretórios de origem seguidos pelo diretório de destino no final.

cp abc.txt backup.txt test backup

Isto copia os arquivos abc.txt e backup.txt e a pasta test para a pasta backup.

O comando cp também permite a correspondência de padrões.

cp *.txt backup

Isto copia todos os arquivos com extensão .txt no diretório de trabalho atual para a pasta backup.

Copiar Diretórios utilizando o comando cp

Utilizamos a bandeira -r ou -R junto com o comando cp para copiar o diretório e seus subdiretórios e arquivos para o diretório de destino.

cp -r pp Project

Ele copia todo o diretório pp e seus subdiretórios e arquivos para o diretório de destino Project.

Neste exemplo, haverá um diretório pp dentro do diretório Project.

Entretanto, se desejarmos apenas copiar arquivos e subdiretórios, utilizaremos a bandeira -T junto com a bandeira -R.

cp -RT pp Project

Ele copia os subdiretórios e arquivos do diretório pp para o diretório de destino Projeto.

Copiar arquivos e diretórios utilizando o comando rsync

O rsync é um utilitário de linha de comando para sincronizar arquivos e diretórios entre dois hosts. Se ambos os caminhos de origem e destino representam o localhost, o comando rsync comporta-se como um comando de cópia.

rsync -a abc.txt backup.txt

Ele copia o conteúdo do abc.txt em backup.txt.

Aqui, a bandeira -a representa a preservação de links simbólicos, tempos de modificação, grupo, propriedade e permissões durante a cópia.

Da mesma forma, podemos copiar um diretório para outro diretório.

rsync -a /abc /backup-abc

Ele copia o conteúdo do diretório abc para o diretório de destino backup-abc.

Aqui, se omitirmos a barra de corte /, então o diretório de origem será copiado dentro do diretório de destino.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Linux Files and Directories