diff fil1 file2
O que o diff faz é imprimir as mudanças necessárias para tornar o arquivo2 idêntico ao arquivo1.
As alterações necessárias para tornar o arquivo1 igual ao arquivo2 são definitivamente diferentes das alterações necessárias para fazer o oposto. Vamos dar uma olhada em um exemplo simples: arquivo1 contém apenas uma palavra one
e arquivo2 contém apenas uma palavra two
, com diff file1 file2
você recebe:
1c1
< one
---
> two
e com diff file2 file1
você recebe:
1c1
< two
---
> one
Então o diff não é simétrico, não deveria ser.
Agora, com relação à opção -B
, o manual diz:
-B, --ignore-blank-lines ignore changes where lines are all blank
-B
não significa ignorar linhas em branco da entrada, isso significa ignorar alterações que estão em branco. se você fizer diff two.txt one.txt
você recebe:
3d2
<
5d3
<
6a5,12
>
>
>
>
>
>
>
>
todas as três alterações são linhas em branco, por isso não imprime nada.