quarta-feira, 24 de julho de 2013

Cópia de arquivos pela linha de comando

Copiar arquivos e pastas pela linha de comandos do Linux é fácil. A sintaxe é simples:

cp [OPÇÃO] ORIGEM DESTINO

Você pode especificar várias origens separadas por espaços. O último parâmetro é o destino. 

As opções mais utilizadas são:
  • -a - Copia diretórios recursivamente preservando os atributos dos arquivos
  • -i - Pergunta antes de sobrescrever um arquivo
  • -n - Não sobrescreve o arquivo destino
  • -p - Preserva os atributos do arquivos (modo, dono, grupo e timestamps)
  • -R, -r - Faz cópia de pastas e sub-pastas recursivamente
  • -s - Cria links simbólicos ao invés de copiar
  • -u - Copia apenas se o arquivo original for mais recente que o arquivo destino ou se este não existir
  • -v - Explica o que está sendo feito

Alguns exemplos:

1- Copiar o arquivo /home/ricardo/Programas/binario.sh para /tmp.

$ cp /home/ricardo/Programa/binario.sh /tmp

2- Copiar a pasta /home/ricardo/Programas e todas os arquivos e sub-pastas para o pasta /tmp.

$ cp -R /home/ricardo/Programa /tmp

3- Copiar todos os arquivos da pasta /home/ricardo/Programas para a pasta /tmp preservando seus atributos.

$ cp -p /home/ricardo/Programa/* /tmp

4- Copiar os arquivos /etc/hosts e /home/ricardo/tmp/teste.txt para a pasta /tmp.

$ cp /etc/hosts /home/ricardo/tmp/teste.txt /tmp