GNU/Linux >> Tutoriales Linux >  >> Linux

¿La forma más rápida de saber si dos archivos tienen el mismo contenido en Unix/Linux?

Me gusta que @Alex Howansky haya usado 'cmp --silent' para esto. Pero necesito una respuesta tanto positiva como negativa, así que uso:

cmp --silent file1 file2 && echo '### SUCCESS: Files Are Identical! ###' || echo '### WARNING: Files Are Different! ###'

Luego puedo ejecutar esto en la terminal o con un ssh para comparar archivos con un archivo constante.


Para y con seguridad de forma rápida comparar dos archivos cualesquiera:

if cmp --silent -- "$FILE1" "$FILE2"; then
  echo "files contents are identical"
else
  echo "files differ"
fi

Es legible, eficiente y funciona para cualquier nombre de archivo, incluido "` $()


Creo cmp se detendrá en la diferencia del primer byte:

cmp --silent $old $new || echo "files are different"

Como apesto y no tengo suficientes puntos de reputación, no puedo agregar este dato como comentario.

Pero, si vas a usar el cmp comando (y no necesita/quiere ser detallado), simplemente puede tomar el estado de salida. Según el cmp página man:

Si un ARCHIVO es '-' o falta, lea la entrada estándar. El estado de salida es 0 si las entradas son iguales, 1 si son diferentes, 2 si hay problemas.

Entonces, podrías hacer algo como:

STATUS="$(cmp --silent $FILE1 $FILE2; echo $?)"  # "$?" gives exit status for each comparison

if [[ $STATUS -ne 0 ]]; then  # if status isn't equal to 0, then execute code
    DO A COMMAND ON $FILE1
else
    DO SOMETHING ELSE
fi

EDITO:¡Gracias por los comentarios a todos! Actualicé la sintaxis de prueba aquí. Sin embargo, le sugiero que use la respuesta de Vasili si está buscando algo similar a esta respuesta en cuanto a legibilidad, estilo y sintaxis.


Linux
  1. ¿El propósito de la carpeta Lost+found en Linux y Unix?

  2. Diff informa que dos archivos difieren, ¡aunque son iguales!?

  3. Compara dos imágenes al estilo python/linux

  4. Cómo obtener la diferencia (solo adiciones) entre dos archivos en Linux

  5. ¿Cuál es la forma más rápida de combinar dos o más archivos en Linux?

Cómo editar archivos PDF en Linux de la manera más fácil posible

Cómo comparar dos archivos en la terminal de Linux

La forma más rápida de contar archivos recursivamente en Linux

Comando ls en Linux/UNIX

¿Qué es el mensaje Tienes nuevo correo en Linux/UNIX?

¿Cuál es la forma más rápida de eliminar todos los archivos y subcarpetas de un directorio?