Bash Comparacion de archivos


Ejemplo

if [[ $file1 -ef $file2 ]]; then
  echo "$file1 and $file2 are the same file"
fi

"Mismo archivo" significa que la modificación de uno de los archivos en su lugar afecta al otro. Dos archivos pueden ser iguales incluso si tienen nombres diferentes, por ejemplo, si son enlaces duros, o si son enlaces simbólicos con el mismo objetivo, o si uno es un enlace simbólico que apunta al otro.

Si dos archivos tienen el mismo contenido, pero son archivos distintos (para que la modificación de uno no afecte al otro), -ef reporta como diferentes. Si desea comparar dos archivos byte a byte, use la utilidad cmp .

if cmp -s -- "$file1" "$file2"; then
  echo "$file1 and $file2 have identical contents"
else
  echo "$file1 and $file2 differ"
fi

Para producir una lista legible por humanos de diferencias entre archivos de texto, use la utilidad diff .

if diff -u "$file1" "$file2"; then
  echo "$file1 and $file2 have identical contents"
else
  : # the differences between the files have been listed
fi