Usando o comando DIFF [Linux]
- Lucas Castro
- Linux
- 27 de janeiro de 2020
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:
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.
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/
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 !