Como comparar dois textos e diretórios para identificar diferenças no Linux

Última atualização: 12/12/2025
autor: Isaac
  • En Linux Podemos comparar arquivos e diretórios com ferramentas de linha de comando como diff, sdiff, cmp, comm ou vimdiff, e com interfaces gráficas como Meld ou Diffuse.
  • O comando diff permite visualizar as diferenças linha por linha, ignorar espaços, letras maiúsculas ou linhas em branco e comparar diretórios inteiros recursivamente com opções como -r, -qo ou -y.
  • Ferramentas gráficas como o Meld facilitam a comparação e a fusão de arquivos e pastas com cores e setas, e até mesmo a integração com sistemas de controle de versão.

Ferramentas para comparar textos no Linux

Quando você trabalha diariamente com Linux e arquivos de textoCedo ou tarde, você precisará verificar se dois arquivos ou diretórios são exatamente iguais. Isso pode acontecer após uma migração de dados, ao atualizar um aplicativo, ao revisar backups ou simplesmente ao comparar duas versões do mesmo documento. escrita ou documento.

Esses tipos de tarefas, que à primeira vista podem parecer um fardo se feitas "a olho nu", tornam-se muito simples se você dominar algumas delas. ferramentas de comparação de arquivos e diretóriosNo Linux, as opções variam de comandos clássicos como diff, sdiff o comm...até mesmo utilitários gráficos como Meld o Difuso, incluindo editores como vimdiff ou embalagens coloridas como Colordiff.

Quando e por que comparar textos e diretórios no Linux

Comparando diretórios e arquivos no Linux

Um caso muito típico é quando você faz um Migração da sua nuvem pessoal ou servidor E você quer ter certeza de que tudo foi transferido corretamente. Imagine que você está migrando do Nextcloud para outra solução como o Filerun: você copia seus dados, tudo parece bem, mas quando verifica a cópia antiga, percebe que há mais arquivos do que no novo local.

Em vez de passar horas navegando em diretórios tentando encontrar o que está faltando, o mais lógico a fazer é usar terminal e executar um comando que detectar diferenças entre duas árvores de diretóriosNesta área, o rei absoluto é diff, que permite comparar diretórios inteiros e arquivos individuais, além de oferecer diversos parâmetros para ajustar a saída.

Também é comum precisar dessas comparações ao gerenciar versões de scripts, arquivos de configuração ou documentosOs desenvolvedores usam essas ferramentas diariamente para ver o que mudou entre as versões de um arquivo e até mesmo para preparar correções ou integrá-lo a sistemas de controle de versão como Git, Mercurial ou Bazaar.

Por fim, se você administra sistemas ou analisa... torasVocê deve dominar pelo menos os comandos básicos, pois frequentemente precisará deles. Comparar registros locais com registros remotosou revisar alterações de configuração em máquinas às quais você só tem acesso por meio de SSH, onde você não tem ferramentas gráficas à mão.

Usando o comando diff para comparar diretórios no Linux

Comando diff Não serve apenas para comparar textos: também pode ser usado para outras finalidades. comparar estruturas de diretório recursivamenteIsso é muito prático para validar migrações de dados ou sincronizações de backups.

A maneira mais conveniente de comparar dois diretórios completos É através destas opções:

diff -rq 'directorio1' 'directorio2'

Neste exemplo, diff É a ferramenta de comparação, -r Isso instrui o programa a percorrer todos os subdiretórios recursivamente, e -q Exibe na tela apenas os arquivos e pastas que apresentam diferenças entre um lado e o outro, evitando ruídos desnecessários.

Por exemplo, para compare o conteúdo da sua nova nuvem Com a versão antiga, você poderia usar algo como:

diff -rq '/home/usuario/Filerun/@Home' '/media/DATOS/copia_nextcloud'

O resultado será uma lista indicando Arquivos presentes em apenas um dos diretórios (com mensagens como “Apenas em /caminho: nome do arquivo”) ou arquivos que existem em ambos os locais, mas cujos conteúdos não correspondem. Esta é uma forma muito clara de detecção:

  • Arquivos temporários ou oculto (por exemplo, arquivos) .git ou bloqueios .~lock.) que foram deixados de lado.
  • Pastas vazias Talvez o aplicativo não tenha sido carregado na nuvem.
  • Mudanças reais em documentos, imagens ou roteiros, que você definitivamente deve revisar com cuidado.

Nesses cenários, o problema nem sempre é a falta de dados: às vezes, é a própria ferramenta de sincronização. Ignorar arquivos temporários, arquivos de bloqueio ou diretórios vaziosE isso é perfeitamente aceitável. Mas graças a diff Você pode ver exatamente quais elementos não correspondem e decidir o que fazer a respeito.

Comparando dois arquivos com diff: binários e texto

O uso mais conhecido de diff É a comparação de dois arquivos para ver quais partes do conteúdo foram alteradasAqui você precisa distinguir entre arquivos de texto (onde você pode detalhar linha por linha) e arquivos binários, onde você apenas indicará se eles são iguais ou não.

  Esta é uma maneira fácil de recortar e colar músicas de um PC com Windows 10.

Verificar se dois arquivos binários são iguais.

Se você deseja saber se dois documentos estão no formato ODT, DOC, PDFMP4 ou outros formatos binários São idênticos, você pode lançar um. diff Basta usar os caminhos de ambos os arquivos:

diff '/home/usuario/Documento_V1.odt' '/home/usuario/Documento_V2.odt'

Se os documentos forem iguais, Não haverá nenhuma saída na tela.Em caso de divergências internas, diff Será exibida uma mensagem como esta:

Los ficheros binarios Documento_V1.odt y Documento_V2.odt son distintos

Nesses casos, como não se trata de texto simples, O comando diff não consegue mostrar exatamente o que mudou.A mensagem apenas alerta para diferenças no conteúdo interno. Para comparar dois arquivos ODT em detalhes, por exemplo, seria necessário usar o LibreOffice e sua função de comparação de documentos.

Comparar dois arquivos de texto ou Markdown em profundidade.

Quando você trabalha com Arquivos de texto simples, scripts, configurações ou Markdown., diff Sim, ele pode detalhar as diferenças até o milímetro. A sintaxe básica é:

diff archivo1 archivo2

Suponha que você tenha Duas versões a partir de um arquivo Markdown:

  • /home/usuario/archivo_1.md
  • /home/usuario/archivo_2.md

Ao executar:

diff '/home/usuario/archivo_1.md' '/home/usuario/archivo_2.md'

Você obterá um resultado onde cada bloco de alterações Siga este padrão:

linea_fichero_1 tipo_de_cambio linea_fichero_2
< contenido_en_el_primer_fichero
---
> contenido_en_el_segundo_fichero

Neste formato clássico, Os elementos-chave são:

  • número_da_linha_arquivo_1: linha (ou intervalo de linhas) do primeiro arquivo envolvido na alteração.
  • taxa de câmbio: pode ser a (adicionar, adicionar), c (mudança, mudança) ou d (excluir, apagar).
  • número_da_linha_arquivo_2: linha (ou intervalo) do segundo arquivo afetado pela alteração.
  • <: marca as linhas exatamente como aparecem no primeiro arquivo.
  • >: marca as linhas correspondentes no segundo arquivo.

Por exemplo, se você vir algo como:

9c9
< Para usar GEEKLAND y obtener la diferencias existentes entre dos directorios...
---
> Para usar Diff y obtener la diferencias existentes entre dos directorios...

significa que o A linha 9 do primeiro arquivo foi alterada em comparação com a linha 9 do segundo arquivo.Imediatamente abaixo < Mostra o conteúdo original e > O conteúdo foi modificado, portanto você pode ver a alteração imediatamente.

Se algo assim aparecer:

18a19
> * -q: Para que la salida del comando diff únicamente muestre las diferencias...

É interpretado como, comparando o segundo arquivo com o primeiro, após a linha 18 do arquivo 2, há Adicionada uma nova linha 19 cujo conteúdo é mostrado após o símbolo >.

Veja as diferenças de forma mais visual com diff -y

Se você acha a notação clássica confusa, diff Oferece um modo mais gráfico usando a opção -y prevenir Exibir duas colunas lado a ladoAlém disso, você pode numerar as linhas com cat -n Para melhor localizá-lo(a):

diff -y '/ruta/archivo1.md' '/ruta/archivo2.md' | cat -n

Neste modo, ambos os arquivos são exibidos em paralelo, com um coluna central que usa símbolos para fazer a diferençaIsso deixa muito claro quais linhas são alteradas, adicionadas ou removidas.

Se você quiser se concentrar apenas nas diferentes linhas, pode adicionar a opção. --suppress-common-lines:

diff -y --suppress-common-lines 'archivo1.md' 'archivo2.md'

Deste modo linhas idênticas desaparecem Assim, você só vê o que realmente mudou entre os dois textos, o que é muito prático quando o arquivo é longo e a maior parte do conteúdo é a mesma.

Principais opções de comparação para refinar as diferenças

Comando diff possui uma boa coleção de parâmetros que permitem adaptar a comparação Dependendo do que lhe interessa: ignorar espaços, letras maiúsculas, linhas em branco ou alterar o formato de saída.

Entre as opções mais comuns (além de -r, -q y -y) destacar-se:

  • -s: notifica apenas quando dois arquivos são idênticos, útil se você precisar confirmar correspondências.
  • -i: ignora diferenças de maiúsculas e Minúsculas no conteúdo textual.
  • -b: comparar ignorando espaços em branco simples.
  • -E: ignora diferenças de tabulações entre arquivos.
  • -Z: ignora espaços no final de uma linhaMuito útil em código.
  • -B: não leva em consideração o linhas em branco ao comparar.
  • --no-dereferenceEvite seguir links simbólicos quando você compara diretórios.
  • --ignore-file-name-case: ignora diferenças entre maiúsculas e minúsculas em nomes de arquivos (ao comparar listagens ou diretórios).
  • --no-ignore-file-name-case: obriga que essas diferenças de nomes sejam levadas em consideração.
  • --suppress-common-lines: com -yEla oculta as linhas idênticas e concentra-se nas diferentes.

Se você quiser ir mais longe e ver todas as possibilidades, basta consultar o página do manual diff:

man diff

Lá você encontrará opções menos comuns, como excluir certos padrões de nomenclatura, modificar o formato de saída (por exemplo, formato unificado). -u (para patches) ou ajuste o tamanho do contexto exibido em torno de cada alteração.

  Adicione fotos ao iCloud do iPhone, iPad e Mac

diff para comparação detalhada de pastas

Além do exemplo básico com -rqVocê pode combinar várias opções para refinar comparação de diretóriosPor exemplo, se você quiser ignorar diferenças entre maiúsculas e minúsculas em nomes de arquivos e não seguir links simbólicos, você pode fazer algo assim:

diff -rq --no-dereference --ignore-file-name-case dir1 dir2

Também é possível usar diff -r sem -q para que, além de alertá-lo sobre quais arquivos são diferentes, Mostraremos os detalhes das diferenças de conteúdo. Ao lidar com arquivos de texto, no entanto, em diretórios muito grandes, a saída pode ser bastante extensa.

Para muitos administradores, comparar diretórios recursivamente Torna-se uma tarefa rotineira: verificar se o backup está completo, verificar se uma pasta de configuração em um servidor é igual à de outro, ou verificar se duas ramificações de um projeto contêm a mesma estrutura de arquivos.

Outras ferramentas de console para comparar textos no Linux

Embora diff É o utilitário principal; o ecossistema Linux oferece Outros comandos muito úteis para comparar arquivos linha por linha.Algumas adicionam visualizações lado a lado, outras exigem que os arquivos sejam classificados e outras ainda aproveitam editores de texto avançados.

sdiff: comparação lado a lado em modo de texto

Comando sdiff É ideal se você quiser Visualize dois arquivos lado a lado no terminal., com uma barra vertical indicando onde existem diferenças:

sdiff f1.txt f2.txt

Na saída, você verá cada linha do primeiro arquivo à esquerda e a linha correspondente do segundo arquivo à direita. Os símbolos mais comuns são:

  • |As duas linhas que estão sendo comparadas são diferentes.
  • <: linha que aparece apenas no primeiro arquivo.
  • >: linha que aparece apenas no segundo arquivo.

Igual que diff, sdiff Também aceita opções como -i ignorar letras maiúsculas e minúsculasIsso permite que você se concentre exclusivamente nas alterações de texto reais e não nas variações de maiúsculas e minúsculas.

colordiff: saída colorida para diff

Leia um diferença em preto e branco Pode ser um pouco tedioso se houver muitas alterações. colordiff É uma pequena embalagem que Aplica cores à saída diferencial. Para torná-lo muito mais legível:

colordiff archivo1 archivo2

Normalmente, colordiff Ele usa cores diferentes para linhas excluídas, adicionadas e modificadas, facilitando a identificação de alterações rapidamente. Além disso, você pode Personalize as cores editando o arquivo. De configuração /etc/colordiffrc de acordo com suas preferências.

comm: comparar arquivos classificados e visualizar linhas em comum

Comando comm é diferente de diff porque Funciona em arquivos que já foram classificados linha por linha. e produz uma saída de três colunas:

comm f1.txt f2.txt

Na saída você encontrará:

  • Primeira coluna: linhas únicas do primeiro arquivo.
  • Segunda coluna: linhas únicas do segundo arquivo.
  • Terceira coluna: linhas que aparecem em ambos.

É muito útil para conjuntos de dados ou listas onde você deseja saber quais entradas são comuns e quais são exclusivas de cada arquivo. No entanto, se os arquivos não estiverem classificados, comm Ele irá avisá-lo e os resultados não serão confiáveis, então você deve enviar-lhes um... sort.

cmp: comparação byte a byte

Comando cmp comparar dois arquivos byte a byteÉ um nível inferior a diffe é usado para detectar se dois arquivos (texto ou binário) são exatamente iguais:

cmp archivo1 archivo2

Se os arquivos coincidirem, Nada é exibido na tela.Se forem diferentes, cmp indica o primeiro byte distinto e sua linha correspondente No caso de texto:

archivo1 archivo2 son distintos: byte 1454, línea 43

Com a opção -b, além do cargo, cmp também Mostra o conteúdo dos diferentes bytes em ambos os arquivos, o que pode ser útil para diagnósticos muito precisos.

vimdiff (ou vim -d): o poder do editor Vim para comparação

Se você usa Vim, isto lhe interessará. vimdiff, que integra a comparação de arquivos diretamente no editor.O comando é tão simples quanto:

vimdiff archivo1 archivo2

o bem:

vim -d archivo1 archivo2

O Vim abre arquivos em várias janelas, destaca as diferenças e permite que você Navegue, edite e salve as alterações. usando comandos padrão do Vim. Ele também suporta comparações remotas via SSH, por exemplo:

vimdiff /var/log/secure scp://192.168.1.25/var/log/secure

Neste caso, você está comparando um registro local com um registro remoto via SSHO Vim se encarrega de solicitar as credenciais e exibir ambos os arquivos como se você os tivesse localmente.

  Aprenda como encerrar notificações de informações do Twitter

Ferramentas gráficas para comparar texto e diretórios no Linux

Se você não se sente muito à vontade com o terminal ou simplesmente prefere algo mais visual, o Linux também oferece Aplicações gráficas especializadas para comparar arquivos e pastasO mais popular provavelmente é MeldMas não o único.

Meld: Interface gráfica do Diff para arquivos, diretórios e projetos.

Meld é basicamente uma interface gráfica para diffembora muito rica em vitaminas. Permite comparar e mesclar arquivos, diretórios e até mesmo projetos em sistemas de controle de versão como Git, Mercurial, Bazaar ou SVN.

Entre suas características mais interessantes incluem:

  • Comparação bidirecional e tridirecional de arquivos e diretórios.
  • Função de mesclagem automática Combinar automaticamente as alterações quando não houver conflitos graves.
  • Realce de sintaxe e gerenciamento básico de arquivos a partir da própria interface.
  • Integração com sistemas de controle de versão e ferramentas de linha de comando como git mergetool.
  • Un código de cores muito claro Para marcar linhas adicionadas, excluídas ou modificadas.

A instalação é simples porque O Meld está presente nos repositórios da maioria das distribuições.. Por exemplo:

  • Debian, Ubuntu, Linux Mint e derivados:
    sudo apt install meld
  • Fedora, CentOS, Alma Linux e similares:
    sudo dnf install meld
  • Arch Linux, Manjaro e derivados:
    sudo pacman -S meld
  • SUSE e openSUSE:
    sudo zypper install meld

Ao executar o programa, você escolhe se deseja comparar. arquivos, diretórios ou um projeto sob controle de versãoSelecione o primeiro item, clique em "Comparar" e, em seguida, escolha o segundo. O Meld mostrará dois (ou três) painéis com o conteúdo e um código de cores típico: Verde para linhas adicionadas, vermelho para linhas modificadas, cinza com um risco para linhas excluídas., etc.

Além disso, em cada bloco de diferença você verá setas que permitem copiar as alterações de um lado para o outro. Com um único clique, o que simplifica bastante a sincronização de duas versões de um arquivo, sem a necessidade de copiar e colar manualmente linha por linha.

Difuso e outras alternativas gráficas

Outra ferramenta gráfica interessante é DifusoEle também permite comparar e editar arquivos de texto com destaque das diferenças. Suporta a comparação de múltiplos arquivos e integra-se com sistemas de controle de versão.

Para instalar o Difusor Em distribuições baseadas em Debian/Ubuntu ou Fedora, você pode usar:

sudo apt-get install diffuse   # Debian/Ubuntu
sudo dnf install diffuse       # Fedora

Além de Meld e Diffuse, existem outras opções como DiffMerge (multiplataforma) ou plugins integrados em IDEs e editores (VS Code, IntelliJ, etc.) que oferecem interfaces muito refinadas para comparar e mesclar código.

Dicas e truques práticos para comparar arquivos no Linux

Comparar arquivos é apenas uma ferramenta; o importante é Aplique-o com sabedoria, dependendo do tipo de dados que você possui.Algumas dicas que lhe pouparão tempo são:

  • Se os arquivos contiverem listas não ordenadas ou dadosVocê pode ter interesse em encomendá-los primeiro com sort antes de usar diff o comm, para que a comparação seja mais lógica.
  • Para evitar falsos positivos no código, acostume-se a usar opções como -b, -B o -Z, que ignoram espaços em branco, linhas vazias ou espaços à direita.
  • Se você só quer saber se dois arquivos são iguais sem ver os detalhes, diff -q o cmp Eles são mais diretos do que um diferencial completo.
  • Ao comparar diretórios grandes, considere usar diff -rq para uma primeira olhadae então aprofunde-se apenas nos arquivos que parecerem distintos.
  • Em ambientes de desenvolvimento, confie em git diff e outras integrações Com sistemas de controle de versão, que já são projetados para destacar alterações relevantes no código.

Dominar essas ferramentas de comparação no Linux permite que você controle melhor suas migrações, localize erros em configurações, revise alterações de scripts e, em geral, Trabalhe com muito mais segurança ao lidar com arquivos críticos.Com um pouco de prática, você usará diff, sdiff, vimdiff, Meld e, quase que de cor, você descobrirá que economizar tempo e evitar dores de cabeça ao comparar dois textos ou diretórios é tão simples quanto executar alguns comandos bem escolhidos.

Como comparar e combinar documentos no Word 3
Artigo relacionado:
Como comparar e combinar documentos no Word