Comando cp Linux: Guia Completo Com 16 Exemplos Práticos
Nesse artigo vamos entender como funciona o comando cp Linux através de um manual completo com 16 exemplos práticos.
O comando cp é muito útil e com certeza fará parte do seu dia a dia como programador quando estiver usando o sistema operacional Linux.
Ou seja, depois de ler esse artigo você será capaz de dominar o comando cp.
Portanto, recomendo prestar muita atenção e separar um tempo para praticar. Vamos lá?
Confira neste artigo:
Sobre o comando cp
Primeiramente devemos entender exatamente o que o comando cp faz dentro do terminal Linux.
Com esse comando podemos facilmente fazer cópias de arquivos e diretórios.
Muito simples de entender, porém existem diversas variações desse comando que devemos entender como funciona.
Mas antes de ir para prática, vamos entender a sintaxe desse comando.
Sintaxe do comando cp
Logo abaixo, temos algumas variações de sintaxe do comando cp Linux:
cp [ opção ] ... [ -T ] destino de origem
diretório cp [ opção ] ... origem ...
cp [ opção ] ... -t fonte do diretório ...
cp --help
cp --version
Veja também: Os Melhores Cursos GRATUITOS De Programação Com Certificado
Algumas opções do comando cp
- -b: gera cópia de segurança se o arquivo de destino já existir.
- -f : substitui arquivos existentes sem pedir confirmação.
- -i : pede permissão antes de substituir arquivos existentes.
- -l : cria um link para o arquivo de origem ao invés de copiar o arquivo.
- -r : copia arquivos e subdiretórios (recursivo).
- -u : copia apenas quando o arquivo de origem é mais novo que o arquivo de destino ou quando o arquivo de destino não existe.
- -v : lista os arquivos copiados.
- −−help : lista as opções disponíveis com o comando.
- −−version : exibe informação sobre o comando.
Exemplos de utilização
Agora vamos a prática através de 16 exemplos de utilização do comando cp Linux. Vamos lá?
Copiar arquivo para o diretório de destino
Vamos supor que queremos copiar o arquivo / etc / passwd para o diretório / mnt / backup para algum propósito de backup, então execute abaixo do comando cp:
root@programadorviking:~# cp /etc/passwd /mnt/backup/
root@programadorviking:~#
Copiando vários arquivos ao mesmo tempo
Vamos supor que queremos copiar múltiplos (/ etc / passwd, / etc / group e / etc / shadow) ao mesmo tempo para o diretório de destino (/ mnt / backup)
root@programadorviking:~# cp /etc/passwd /etc/group /etc/shadow /mnt/backup/
root@programadorviking:~#
Copiando os arquivos interativamente (-i)
Se você deseja copiar os arquivos de um lugar para outro interativamente, então use a opção “-i” no comando cp, a opção interativa só funciona se o diretório de destino já tiver o mesmo arquivo, exemplo é mostrado abaixo:
root@programadorviking:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'? y
root@programadorviking:~#
No comando acima, é necessário digitar manualmente ‘y’ para permitir a operação de cópia
Veja também: Os Melhores Cursos GRATUITOS De Programação Com Certificado
Saída detalhada durante o comando de cópia (-v)
Se você quiser a saída detalhada do comando cp, use a opção “-v”, o exemplo é mostrado abaixo:
root@programadorviking:~# cp -v /etc/fstab /mnt/backup/
'/etc/fstab' -> '/mnt/backup/fstab'
root@programadorviking:~#
Caso você queira usar tanto o modo interativo quanto o modo detalhado, use as opções “-iv”
root@programadorviking:~# cp -iv /etc/fstab /mnt/backup/
cp: overwrite '/mnt/backup/fstab'? y
'/etc/fstab' -> '/mnt/backup/fstab'
root@programadorviking:~#
Copiando um diretório ou pasta (-r ou -R)
Para copiar um diretório de um lugar para outro, use a opção -r ou -R no comando cp. Vamos supor que queremos copiar o diretório home do usuário do programadorviking para “/ mn / backup”:
root@programadorviking:~# cp -r /home/programadorviking /mnt/backup/
root@programadorviking:~#
No comando acima, a opção -r copiará os arquivos e o diretório recursivamente.
Agora verifique o conteúdo do diretório programadorviking no local de destino:
root@programadorviking:~# ls -l /mnt/backup/programadorviking/
total 24
drwxr-xr-x 2 root root 4096 Feb 3 17:41 data
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_1.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_2.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_3.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_4.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_5txt
-rw-r--r-- 1 root root 0 Feb 3 17:41 file_5.txt
root@programadorviking:~#
Arquivar arquivos e diretório durante a cópia (-a)
Ao copiar um diretório usando o comando cp, geralmente usamos a opção -r ou -R, mas no lugar da opção -r, podemos usar ‘-a’, que arquivará os arquivos e o diretório durante a cópia, como mostrado abaixo:
root@programadorviking:~# cp -a /home/programadorviking /mnt/backup/
root@programadorviking:~# ls -l /mnt/backup/programadorviking/
total 24
drwxr-xr-x 2 root root 4096 Feb 3 17:41 data
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_1.txt
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_2.txt
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_3.txt
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_4.txt
-rw-r--r-- 1 root root 7 Feb 3 17:40 file_5txt
-rw-r--r-- 1 root root 0 Feb 3 17:39 file_5.txt
root@programadorviking:~#
Copie somente quando o arquivo de origem for mais recente que o de destino (-u)
Pode haver alguns cenários em que você deseja copiar os arquivos apenas se os arquivos de origem forem mais recentes que os de destino. Isto pode ser facilmente alcançado usando a opção “ -u ” no comando cp.
Veja também: Os Melhores Cursos GRATUITOS De Programação Com Certificado
No exemplo: 6 copímos o diretório home programadorviking para a pasta / mnt / backup, na pasta home programadorviking temos 5 arquivos txt, vamos editar alguns deles e depois copiar todos os arquivos txt usando “cp -u”.
root@programadorviking:~# cd /home/programadorviking/
root@programadorviking:/home/programadorviking# echo "ProgramadorViking" >> file_1.txt
root@programadorviking:/home/programadorviking# echo "ProgramadorViking" >> file_4.txt
root@programadorviking:/home/programadorviking# cp -v -u file_*.txt /mnt/backup/programadorviking/
'file_1.txt' -> '/mnt/backup/programadorviking/file_1.txt'
'file_4.txt' -> '/mnt/backup/programadorviking/file_4.txt'
root@programadorviking:/home/programadorviking#
Não sobrescreva o arquivo existente durante a cópia (-n)
Existem alguns cenários em que você não deseja sobrescrever os arquivos de destino existentes durante a cópia. Isso pode ser feito usando a opção ‘-n’ no comando ‘cp’
root@programadorviking:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'?
Como você pode ver no comando acima, ele está nos solicitando a sobrescrever o arquivo existente, se você usar -n, ele não solicitará a sobregravação e também não sobrescreverá o arquivo existente.
root@programadorviking:~# cp -n /etc/passwd /mnt/backup/
root@programadorviking:~#
Criando links simbólicos usando o comando cp (-s)
Vamos supor que queremos criar link simbólico de um arquivo em vez de copiar usando o comando cp, para tais cenários use a opção ‘-s’ no comando cp, o exemplo é mostrado abaixo:
root@programadorviking:~# cp -s /home/programadorviking/file_1.txt /mnt/backup/
root@programadorviking:~# cd /mnt/backup/
root@programadorviking:/mnt/backup# ls -l file_1.txt
lrwxrwxrwx 1 root root 27 Feb 5 18:37 file_1.txt -> /home/programadorviking/file_1.txt
root@programadorviking:/mnt/backup#
Criando link físico usando o comando cp (-l)
Se você quiser criar um link físico de um arquivo, copie usando o comando cp e, em seguida, use a opção ‘-l’. Exemplo é mostrado abaixo:
root@programadorviking:~# cp -l /home/programadorviking/devops.txt /mnt/backup/
root@programadorviking:~#
Como sabemos em link físico, fonte e arquivo vinculado terão os mesmos números de inode, vamos verificar isso usando os seguintes comandos:
root@programadorviking:~# ls -li /mnt/backup/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb 5 20:02 /mnt/backup/devops.txt
root@programadorviking:~# ls -li /home/programadorviking/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb 5 20:02 /home/programadorviking/devops.txt
root@programadorviking:
Copiando atributos da origem para o destino (somente para atributos)
Se você quiser copiar apenas os atributos da origem para o destino usando o comando cp, use a opção “ –atributes-only ”
root@programadorviking:/home/programadorviking# cp --attributes-only /home/programadorviking/distributions.txt /mnt/backup/
root@programadorviking:/home/programadorviking# ls -l /home/programadorviking/distributions.txt
-rw-r--r-- 1 root root 41 Feb 5 19:31 /home/programadorviking/distributions.txt
root@programadorviking:/home/programadorviking# ls -l /mnt/backup/distributions.txt
-rw-r--r-- 1 root root 0 Feb 5 19:34 /mnt/backup/distributions.txt
root@programadorviking:/home/programadorviking#
No comando acima, nós copiamos o arquivo distribution.txt do diretório home do programadorviking para a pasta / mnt / backup, se você notou, apenas os atributos são copiados e o conteúdo é ignorado. O tamanho do arquivo distribution.txt em / mn / pasta de backup é zero bytes.
Veja também: Os Melhores Cursos GRATUITOS De Programação Com Certificado
Criando backup do arquivo de destino existente durante a cópia (–backup)
O comportamento padrão do comando cp é sobrescrever o arquivo no destino se o mesmo arquivo existir, se você quiser fazer um backup do arquivo de destino existente durante a operação de cópia e usar a opção ‘- backup ‘, o exemplo é mostrado abaixo:
root@programadorviking:~# cp --backup=simple -v /home/programadorviking/distributions.txt /mnt/backup/distributions.txt
'/home/programadorviking/distributions.txt' -> '/mnt/backup/distributions.txt' (backup: '/mnt/backup/distributions.txt~')
root@programadorviking:~#
Se você notou, o backup foi criado e anexado ao símbolo til no final do arquivo. opção de backup aceita os seguintes parâmetros
- none, off – nunca faça backups
- numbered, t – fazer backups numerados
- existing, nil- backups numerados se existirem numerados, simples, caso contrário,
- simple, never – sempre faça backups simples
Preserve mode, ownership e timestamps durante a cópia (-p)
Se você quiser preservar os atributos de arquivo como modo, propriedade e carimbos de data e hora ao copiar, use a opção -p no comando cp. Exemplo é demonstrado abaixo:
root@programadorviking:~# cd /home/programadorviking/
root@programadorviking:/home/programadorviking# cp -p devops.txt /mnt/backup/
root@programadorviking:/home/programadorviking# ls -l devops.txt
-rw-r--r-- 1 root root 37 Feb 5 20:02 devops.txt
root@programadorviking:/home/programadorviking# ls -l /mnt/backup/devops.txt
-rw-r--r-- 1 root root 37 Feb 5 20:02 /mnt/backup/devops.txt
root@programadorviking:/home/programadorviking#
Não siga os links simbólicos em Source durante a cópia (-P)
Se você não quiser seguir os links simbólicos da fonte enquanto estiver copiando, use a opção -P no comando cp. Exemplo é mostrado abaixo:
root@programadorviking:~# cd /home/programadorviking/
root@programadorviking:/home/programadorviking# ls -l /opt/nix-release.txt
lrwxrwxrwx 1 root root 14 Feb 9 12:28 /opt/nix-release.txt -> os-release.txt
root@programadorviking:/home/programadorviking#
root@programadorviking:/home/programadorviking# cp -P os-release.txt /mnt/backup/
root@programadorviking:/home/programadorviking# ls -l /mnt/backup/os-release.txt
-rw-r--r-- 1 root root 35 Feb 9 12:29 /mnt/backup/os-release.txt
root@programadorviking:/home/programadorviking#
Nota: O comportamento padrão do comando cp é seguir os links simbólicos na origem durante a cópia.
Copie os arquivos e o diretório usando a opção -f
Pode haver alguns cenários em que o arquivo de destino existente não pode ser aberto nem removido. E se você tiver um arquivo saudável que possa ser copiado no lugar do arquivo de destino existente, use o comando cp juntamente com a opção -f
root@programadorviking:/home/programadorviking# cp -f distributions.txt /mnt/backup/
root@programadorviking:/home/programadorviking#
Copiar arquivos esparsos usando a opção sparse no comando cp
O Sparse é um arquivo regular que contém uma longa sequência de zero bytes que não consome nenhum bloco de disco físico. Um dos benefícios do arquivo esparso é que ele não consome muito espaço em disco e a operação de leitura nesse arquivo seria bastante rápida.
Vamos supor que temos uma imagem de nuvem esparsa chamada “ubuntu-cloud.img”
root@programadorviking:/home/programadorviking# du -sh ubuntu-cloud.img
12M ubuntu-cloud.img
root@programadorviking:/home/programadorviking# cp --sparse=always ubuntu-cloud.img /mnt/backup/
root@programadorviking:/home/programadorviking# du -sh /mnt/backup/ubuntu-cloud.img
0 /mnt/backup/ubuntu-cloud.img
root@programadorviking:/home/programadorviking#
Diferentes opções podem ser usadas ao usar o parâmetro esparso no comando cp,
- sparse=auto
- sparse-always
- sparse=never
Conclusão: Comando cp Linux
No artigo de hoje vimo de forma prática como utilizar o comando cp Linux para fazer cópias em diversas situações.
Ou seja, é muito importante dominar esse comando pois ele será parte do dia a dia de um programador que utiliza o Linux como sistema operacional.
Não perca tempo! Dê um passo decisivo em direção ao seu sucesso profissional agora mesmo. Basta clicar no botão abaixo e abrir as portas para mais de 1400 cursos completos, todos com certificados válidos.
ACESSAR CURSOS COM CERTIFICADOEnfim, espero que tenha gostado do conteúdo e que tenha de ajudado de alguma forma.
Muito obrigado por ler até aqui.
Até o próximo artigo!
Sobre o Autor
0 Comentários