Autor(es) original(es) | Dennis Ritchie ( Laboratorios Bell de AT&T ) |
---|---|
Desarrollador(es) | Varios desarrolladores comerciales y de código abierto |
Lanzamiento inicial | 3 de noviembre de 1971 ( 03-11-1971 ) |
Escrito en | Plan 9: C |
Sistema operativo | Unix , similar a Unix , Plan 9 , Inferno , OS-9 , IBM i |
Tipo | Dominio |
Licencia | coreutils : GPLv3+ Plan 9: Licencia MIT |
En informática , cmp
es una utilidad de línea de comandos en sistemas operativos Unix y similares a Unix que compara dos archivos de cualquier tipo y escribe los resultados en la salida estándar . De manera predeterminada, no se menciona si los archivos son iguales; si difieren, se informa el byte y el número de línea en el que se produjo la primera diferencia. El comando también está disponible en el shell OS-9 . [1]cmp
cmp
es parte de la Guía de Portabilidad X/Open desde la edición 2 de 1987. Fue heredado en la primera versión de POSIX.1 y la Especificación Única de Unix . [2] Apareció por primera vez en la Versión 1 de Unix . [3]
La versión de cmp
incluida en GNU coreutils fue escrita por Torbjorn Granlund y David MacKenzie. [4]
El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes de GNU similares a Unix. [5] El comando cmp también ha sido portado al sistema operativo IBM i . [6]
cmp
Puede calificarse mediante el uso de modificadores de línea de comandos . Los modificadores admitidos por implementaciones notables de cmp
son:
Nombre | Descripción | Unix | Plan 9 | Infierno | BSD libre | Linux | IBM i |
---|---|---|---|---|---|---|---|
-b, | Imprima los bytes diferentes. Muestre los bytes de control como un ' ^ ' seguido de una letra del alfabeto y preceda los bytes que tienen el bit alto configurado con ' M- ' (que significa " meta "). | No | No | No | No | Sí | No |
-h | No sigas enlaces simbólicos. | No | No | No | Sí | No | No |
-i SKIP, | Omitir los primeros bytes SKIP de entrada. | No | No | No | No | Sí | No |
-i SKIP1:SKIP2, | Omite los primeros bytes SKIP1 de FILE1 y los primeros bytes SKIP2 de FILE2. | No | No | No | No | Sí | No |
-l, | Genera los números de bytes (decimales) y los valores (octales) de todos los bytes diferentes, en lugar de la salida estándar predeterminada. Además, muestra el mensaje EOF si un archivo es más corto que el otro. | Sí | Sí | Sí | Sí | Sí | Sí |
-L | Imprime el número de línea del primer byte diferente. | Sí | Sí | Sí | No | No | No |
-n LIMIT, | Comparar como máximo LIMIT bytes. | No | No | No | No | Sí | No |
-s, | No generar nada; solo generar estado de salida. | Sí | Sí | Sí | Sí | Sí | Sí |
-t | Modo de texto donde los archivos se abren en modo texto y se traducen al CCSID del trabajo antes de comparar byte por byte. | No | No | No | No | No | Sí |
-v, | Información de la versión de salida. | No | No | No | No | Sí | No |
-x | Como -l pero imprime en hexadecimal y utiliza cero como índice para el primer byte en los archivos. | No | No | No | Sí | No | No |
-z | Para los archivos normales, primero compare los tamaños de los archivos y falle la comparación si no son iguales. | No | No | No | Sí | No | No |
--help | Genera un archivo de ayuda. | No | No | No | No | Sí | No |
Los operandos que son recuentos de bytes normalmente son decimales, pero pueden estar precedidos por ' 0
' para octal y ' 0x
' para hexadecimal.
Un número de bytes puede ir seguido de un sufijo para especificar un múltiplo de ese número; en este caso, se entiende que un entero omitido es 1. Una letra de tamaño simple, o una seguida de ' iB
', especifica un múltiplo utilizando potencias de 1024. Una letra de tamaño seguida de ' B
' especifica potencias de 1000 en su lugar. Por ejemplo, ' -n 4M
' y ' -n 4MiB
' son equivalentes a ' -n 4194304
', mientras que ' -n 4MB
' es equivalente a ' -n 4000000
'. Esta notación es compatible con los prefijos del SI [7] para múltiplos decimales y con los prefijos IEC 60027-2 para múltiplos binarios. [8]