Usando o comando DIFF [Linux]

Usando o comando DIFF [Linux]

Assim como o comando Screen, que já falamos em outro post aqui no site da Iron Linux , o comando Diff pode ser muito útil para o dia a dia de um profissional que trabalha com sistemas unix like.

A função do comando é comparar arquivos de texto e diretórios destacando a diferença do conteúdo de cada um. Chega de usar o “olhômetro” para comparar aqueles arquivos de configuração! 😉

Comparação de conteúdo de arquivos

No primeiro exemplo iremos utilizar a lista de frutas abaixo:

Texto para exemplo no diff

Ao utilizar o comando:

diff arquivo01 arquivo02

Em nosso exemplo, temos os resultados que serão interpretados com os parâmetros listados abaixo:

< - informação deve ser retirada para que o arquivo fique igual ao arquivo comparado
> - informação deve ser adicionada para que o arquivo fique igual ao arquivo comparado

Os números e letras na imagem (2,3d1 e 5a4,5) indicam a posição que as informações diferentes estão e a ação para igualar os arquivos. Sendo que os primeiros números sempre serão a(s) linha(s) na qual a ação será tomada.

2,3d1= A segunda e a terceira linha devem ser deletadas do arquivo01 (d=delete) para que as linhas sejam sincronizadas com o arquivo02.

5a4,5= Após a linha 5 do arquivo adicione (a=add) as linhas 4 e 5 do arquivo01  no arquivo 02 para que o conteúdo fique igual ao arquivo01.

Comparação de conteúdo contextualizada

Considerando as mesmas listas, vamos utilizar o comando Diff -c para que o sistema nos diga quais diferenças existem entre os dois arquivos de uma maneira mais simples:

Diff -c arquivo01 arquivo02

Utilizar a diretiva -c (-context) irá melhorar a leitura da saída do comando.

Comando diff no Linux

Simplificando,  imagine que o sistema está afirmando:
“Para que o arquivo01 fique igual ao arquivo02, RETIRE as linhas que contém Banana e Laranja e ADICIONE as linhas que contém Cereja e Tomate.”

Comparação de diretórios

Também é possível realizar a comparação de diretórios, que irá informar se os arquivos dentro desses diretórios são iguais ou não.

Para exemplificar, coloquei o arquivo01 e arquivo02 em pastas e comparei os mesmos, veja o resultado:

diff pasta01/ pasta02/
Comparando diretórios com diff

Repare, o conteúdo dos arquivos não foi comparado, o diff apenas verificou o nome dos arquivos e informou que o arquivo01 está presente apenas na pasta01 e o arquivo02 está presente apenas na pasta02.

Bônus: Também é possível comparar o resultado de arquivos compactados com o comando zdiff ! Basta usar a mesma sintaxe, alterando apenas o comando, de diff para zdiff!

E aí? já pensou em algum momento em que você precisou comparar arquivos de configuração e poderia ter utilizado essa função?

Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !