Como copiar arquivos e diretórios usando o terminal Linux
-
Copiar arquivos utilizando o comando
cp
-
Copiar arquivos para um diretório utilizando o comando
cp
- Copiar Vários Arquivos
-
Copiar Diretórios utilizando o comando
cp
-
Copiar arquivos e diretórios utilizando o comando
rsync
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 is a backend software engineer at Matrice.ai.
LinkedIn