Cmp (Unix)

cmp
Autor Torbjorn Granlund e David MacKenzie
Desenvolvedor AT&T Bell Laboratories
Lançamento 3 de novembro de 1971, 53 anos atrás
Sistema operacional Unix, Unix-like
Licença GNU GPL

O comando cmp(do inglês compare) em sistemas operacionais unix-like compara dois arquivos de qualquer tipo, byte a byte, e grava os resultados para a saída padrão. Por padrão, o programa não produz saída se os arquivos forem o mesmo; se forem diferentes, a contagem de bytes até a linha e o número da linha onde houve diferença são relatados.[1][2]

Uso

A sintaxe geral do comando cmp é a seguinte[2]:

cmp [OPÇÃO]... ARQUIVO1 [ARQUIVO2 [PULAR1 [PULAR2]]]

Os argumentos ARQUIVO1 e ARQUIVO2 indicam os arquivos a serem comparados. Caso o ARQUIVO2 não seja informado, a informação é lida da entrada padrão. PULAR1 e PULAR2 indicam o número de bytes a serem pulados a partir do início de cada arquivo antes de iniciar a comparação (os sufixos kB, K, MB, M, GB, G podem ser usados como os multiplicadores 1000, 1024, 1.000.000, 1.048.576, 1.000.000.000 respectivamente - o mesmo vale para os prefixos T, P, E etc).

Opções

As opções mais comuns do comando cmp são[3]:

  • --bytes (-n) - Deve ser seguido pelo número máximo de bytes a ser comparado entre os arquivos
  • --quiet, --silent (-s) - Suprime toda saída padrão do programa

Exemplos

Nos exemplos abaixo o conteúdo de arquivo1 é igual ao conteúdo de arquivo3 e o conteúdo de arquivo2 é diferente de ambos.

cmp arquivo1 arquivo2 # compara 'arquivo1' e 'arquivo2'
                      # produz a seguinte saída
                      # "arquivo1 arquivo2 differ: byte 5, line 1
cmp arquivo1 arquivo3 # compara 'arquivo1' e 'arquivo3'
                      # não produz saída porque eles são iguais
cat arquivo2 | cmp arquivo1 # compara 'arquivo1' com a saída do comando
                            # 'cat arquivo2', o comando cat exibe o conteudo
                            # de 'arquivo2', produzindo a mesma saída final
                            # que 'cmp arquivo1 arquivo2'

Valores de retorno

O comando possuí os seguintes valores de retorno:[3]

  • 0 - se os arquivos são idênticos
  • 1 - se os arquivos são diferentes
  • 2 - se algum dos arquivos é inacessível ou se houve erro de sintaxe

Veja também

  • diff - Comando que compara dois arquivos linha a linha

Notas e Referências

  1. «DESCRIPTION». pubs.opengroup.org (em inglês). Consultado em 16 de dezembro de 2014 
  2. a b «cmp(1): compare two files byte by byte - Linux man page». linux.die.net. Consultado em 30 de março de 2019 
  3. a b «Comparing and Merging Files: Invoking cmp». www.gnu.org. Consultado em 30 de março de 2019 


Ícone de esboço Este artigo sobre Unix é um esboço. Você pode ajudar a Wikipédia expandindo-o.