
Emcomputação,diff é um utilitário decomparação de arquivos que analisa e exibe as diferenças entre dois arquivos texto por linha.[1] É normalmente usado para mostrar as mudanças entre uma versão de um arquivo e a versão anterior do mesmo arquivofonte ou de configuração.[2]
Odiff mostra as alterações realizadas por linha para arquivos de texto. Implementações modernas também suportamarquivos binários. A saída é chamada de um "diff", ou um patch (remendo),[3] uma vez que a saída pode ser aplicada com o programapatch doUnix.[4] Nalíngua inglesa, a saída de utilitários similares de comparação de arquivos também são chamadas de um "diff". Assim como o uso da palavra "grep" para descrever o ato de procurar, a paravradiff é usada comojargão para diferença.[5]
O diff foi desenvolvido próximo de 1970 nosistema operacional Unix, que estava surgindo daBell Labs. A primeira versão foi lançada junto com a 5° edição do Unix em 1974, e foi escrita porDouglas McIlroy, eJames Hunt.[6] A pesquisa foi publicada em 1976 no artigo co-escrito com James W. Hunt, que desenvolveu o protótipo original do diff. O algoritmo descrito pelo artigo ficou conhecido poralgoritmo Hunt-Szymanski.
A operação de diff é baseado na solução doproblema de maior subsequência comum (LCS).
Neste problema, são dadas duas sequências de itens:
abcdfg hj qz
abcd ef g i j k r x yz
e nós queremos achar a maior subsequência de itens que está presente em ambos as sequências na mesma ordem. Ou seja, queremos achar uma nova sequência por deletar alguns itens da primeira sequência original, e da segunda por deletar outros itens. Também queremos que esse sequência seja a mais longa possível. No caso seria:
a b c d e f g j z
Isso é apenas um pequeno passo para conseguirmos uma saída parecida com diff: se um item não existe na subsequência mas está presente na primeira sequência original, ele deve ser deletado (como indicado pelo marcador '-', abaixo). Se um item não existe na subsequência mas está presente na segunda sequência original, ele deve ser adicionado (como indicado pelo marcador '+').
e h i q k r x y+ - + - + + + +
Nos sistemas operacionais do tipo Unix, o comando diff analisa dois arquivos e imprime as linhas diferentes.
Comparing files and finding the differences between them is a widely used operation. This is specially useful when you have to compare complex code or configuration files.
The “diff” command is also used by the programmers to get the difference between two source code files to develop patches.
short for difference
| Este artigo sobrecomputação é umesboço. Você pode ajudar a Wikipédiaexpandindo-o. |