Artigo · Tecnologia prática
Backup pelo terminal: como salvar seus arquivos rapidamente no Windows e no Linux
Comandos nativos para copiar uma pasta, preservar sua estrutura, conferir o resultado e entender o risco de sincronizar ou espelhar um destino.
10 min de leitura
Copiar uma pasta para outro disco não transforma automaticamente a cópia em backup. Ela só ajuda quando fica em um destino separado, pode ser identificada e é possível recuperar um arquivo sem depender do computador original.
O terminal é útil porque deixa o caminho e as opções explícitos. Também torna mais fácil repetir uma rotina, mas um comando mal apontado pode copiar para o lugar errado ou, em algumas ferramentas, apagar arquivos do destino. Faça os primeiros testes com uma pasta temporária e arquivos que possam ser recriados.
Antes de copiar
Comece com três decisões:
- Origem: qual pasta contém os arquivos importantes?
- Destino: qual disco, volume ou local remoto ficará separado da origem?
- Restauração: como você localizará e copiará um arquivo de volta se o original for perdido?
Um segundo diretório no mesmo SSD não protege contra falha do equipamento, ransomware ou erro que atinja as duas pastas. Um disco externo desconectado depois da cópia reduz alguns riscos, mas ainda pode ser perdido ou danificado. A regra 3-2-1 é uma referência útil: pelo menos três cópias, em dois tipos de mídia e uma fora do local principal. Ela não substitui testar a restauração.
Evite começar pelo diretório inteiro do usuário. Escolha uma pasta de projeto ou documentos, confirme o espaço disponível e confira se há arquivos abertos, dados de aplicativos ou informações que não deveriam ser levadas para um disco compartilhado.
Windows com PowerShell
Defina caminhos em variáveis para reduzir erros de digitação. No exemplo abaixo, substitua os caminhos pelos seus e confirme cada um antes de executar:
$origem = "C:\Users\SeuNome\Documents\Projeto"
$destino = "E:\Backups\Projeto"
New-Item -ItemType Directory -Path $destino -Force
Copy-Item -Path "$origem\*" -Destination $destino -Recurse
Copy-Item copia itens entre locais do mesmo provedor e -Recurse percorre as subpastas. O uso de * copia o conteúdo de Projeto para o destino, em vez de criar outra pasta Projeto dentro dele. Não acrescente -Force sem entender o efeito: ele pode substituir arquivos existentes e não transforma a operação em uma rotina incremental confiável.
Para visualizar primeiro o que uma ação faria, o PowerShell oferece -WhatIf em cmdlets que suportam essa opção. Ele é uma proteção útil para comandos que possam alterar dados, mas não substitui confirmar as variáveis $origem e $destino.
Quando a pasta já tem muitos arquivos
O robocopy é uma opção nativa do Windows para cópias de diretórios. Uma primeira execução conservadora pode ser:
robocopy $origem $destino /E /Z /R:2 /W:5 /COPY:DAT /LOG:"C:\Temp\backup-projeto.log"
Nesse exemplo:
/Einclui subpastas vazias;/Zpermite retomar uma cópia interrompida em modo reiniciável;/R:2e/W:5evitam a espera padrão excessiva em caso de erro;/COPY:DATmantém dados, atributos e horários, sem pedir cópia de proprietário ou permissões NTFS;/LOGregistra a execução em um arquivo separado do destino.
O código de saída do robocopy não funciona como o de muitos comandos: valores de 0 a 7 podem indicar cópia concluída, arquivos adicionais ou diferenças sem falha; 8 ou mais indica que houve pelo menos uma falha. Leia o log antes de considerar a rotina concluída.
Não use /MIR, /PURGE, /MOV ou /MOVE em uma primeira cópia. /MIR espelha a origem e pode remover do destino arquivos que não existem mais na origem; /MOV e /MOVE removem arquivos da origem depois da operação. Essas opções podem ser adequadas a uma rotina planejada, mas não a uma cópia de segurança iniciada sem inventário.
Linux com ferramentas comuns
No Bash, use aspas quando os caminhos puderem conter espaços. O cp -a copia recursivamente e tenta preservar estrutura e atributos:
ORIGEM="$HOME/Documentos/projeto"
DESTINO="/media/$USER/DiscoBackup/projeto"
mkdir -p "$DESTINO"
cp -a "$ORIGEM/." "$DESTINO/"
O /. no fim da origem significa “conteúdo da pasta”, incluindo subpastas, sem depender de uma expansão de * que possa ignorar nomes ocultos. O comando não apaga sobras do destino, mas pode substituir arquivos com o mesmo nome. Por isso, confirme o caminho montado do disco externo antes de executá-lo.
Se rsync estiver instalado, ele oferece uma cópia incremental mais informativa:
rsync -ain -- "$ORIGEM/" "$DESTINO/"
rsync -ai --info=progress2 -- "$ORIGEM/" "$DESTINO/"
A primeira linha é uma simulação: -n não grava nada, -a preserva a estrutura em modo arquivo e -i mostra as diferenças. Só execute a segunda depois de ler a lista. A barra final em "$ORIGEM/" copia o conteúdo da pasta para DESTINO; sem ela, a estrutura final pode ter um nível de diretório diferente.
Não acrescente --delete ou --remove-source-files sem uma política de retenção, uma cópia adicional e um teste de restauração. rsync pode ser usado para sincronizar, mas sincronização não é o mesmo que manter versões históricas: uma exclusão ou corrupção replicada ainda pode alcançar o destino.
Como conferir a cópia
Uma listagem confirma que algo existe, mas não prova que todo arquivo pode ser lido. Primeiro compare a estrutura e escolha arquivos representativos:
Get-ChildItem -LiteralPath $destino -Recurse -File | Measure-Object
Get-FileHash -LiteralPath "$origem\docs\manual.pdf"
Get-FileHash -LiteralPath "$destino\docs\manual.pdf"
No Linux, use:
find "$DESTINO" -type f -print
sha256sum "$ORIGEM/docs/manual.pdf" "$DESTINO/docs/manual.pdf"
Os hashes precisam ser iguais para o mesmo arquivo. Uma contagem de arquivos e uma amostra de hashes ajudam, mas não substituem uma restauração completa em intervalos definidos. Se o destino estiver em um sistema de arquivos com permissões diferentes, confirme também se os arquivos podem ser abertos pelo usuário que fará a recuperação.
Copiar, sincronizar ou versionar?
- Copiar: cria uma segunda versão dos arquivos naquele momento. É simples e adequado para uma primeira cópia manual.
- Sincronizar: compara origem e destino e envia diferenças. Economiza tempo, mas opções de exclusão ou espelhamento podem remover dados do destino.
- Versionar: mantém estados anteriores para voltar a uma versão específica. É mais adequado para código e documentos que mudam com frequência, desde que o histórico fique em outro local e tenha política de retenção.
Nenhuma dessas opções, sozinha, protege contra senha perdida, disco roubado, malware, falha do destino ou uma restauração nunca testada. Para fotos, documentos de clientes, arquivos de trabalho e dados de aplicativos, uma solução completa pode precisar de histórico de versões, cópia externa, criptografia, alertas de erro e restauração documentada.
Restaurar sem sobrescrever o original
Restaure primeiro para uma pasta separada. No Windows:
$restauro = "C:\Restauro\Projeto"
New-Item -ItemType Directory -Path $restauro -Force
Copy-Item -Path "$destino\*" -Destination $restauro -Recurse
No Linux:
RESTAURO="$HOME/Restauro/projeto"
mkdir -p "$RESTAURO"
cp -a "$DESTINO/." "$RESTAURO/"
Depois abra arquivos de tipos diferentes e compare nomes, datas, permissões e conteúdo. Só substitua a pasta de trabalho quando souber exatamente o que será perdido e tiver preservado a versão atual.
O que foi verificado nesta pauta
O exemplo cp -a foi executado em diretórios temporários e seguros neste ambiente Linux, com conferência por comparação de arquivo. Os comandos PowerShell, robocopy e rsync não foram executados aqui: devem ser conferidos no sistema do leitor, com caminhos de teste e sem dados reais. O artigo permanece em draft até revisão técnica e editorial humana.
