Início·Comandos de terminal

diff

Processamento de texto

Uso

diff -u [old] [new]

Mostra o que mudou entre dois arquivos; o formato unificado -u é o que patch e a revisão de código esperam, e ele sai com 1 quando diferem, o que trava um script com set -e.

Opções comuns

OpçãoSignificado
-uUnified output, the format patch and code review expect
-rCompare two directory trees
-qOnly say whether the files differ
-wIgnore all whitespace
-iIgnore case
-NTreat a missing file as empty, which patches need

Exemplos

diff -u old.conf new.conf > fix.patch

Writes a patch file.

diff -rq dirA dirB

Lists which files differ between two trees.

diff <(sort a.txt) <(sort b.txt)

Compares two files ignoring line order (bash).

Foram feitos para serem encadeados com pipes. Três comandos ligados costumam ser mais curtos que um que faça tudo.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que diff faz?

Mostra o que mudou entre dois arquivos; o formato unificado -u é o que patch e a revisão de código esperam, e ele sai com 1 quando diferem, o que trava um script com set -e.

Q. Como se digita?

diff -u [old] [new] — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 6; a lista completa está em man diff. Este comando fica em Processamento de texto.

Comandos relacionados

página man: man diff