Gemelos

Este script encuentra archivos que tenga el mismo contenido.

Para este script, dos archivos son duplicados uno de otro si su tamaño y su firma MD5 coinciden.

Se le puede pasar la opción «-v» para ver qué está haciendo el script en ese momento.

Nombre del archivo: «bin/gemelos».

#!/bin/bash

if [ "$1" == "-h" ]; then
        echo usage: $0 [-v]
        exit
fi

OUTPUT_FILE=/dev/null

if [ "$1" == "-v" ]; then
        OUTPUT_FILE=/dev/stderr
fi

echo Obteniendo lista de archivos... > $OUTPUT_FILE

IFS=
find -type f -printf "%13s %pn" | sort -gr | uniq -w 13 -D | while read T; do
        echo Calculando MD5 para ${T:14}... > $OUTPUT_FILE
        printf "%s %sn" ${T:1:12} `md5sum ${T:14}`;
done | sort -g | uniq -w 45 --all-repeated=separate

Ejemplo de la salida:

alvarezp@octavio:~/non-iso$ ~/bin/gemelos
      358085 5d5c22e4ce586feadefd285ca81350db  ./otra-de-windows/plain-backup/omf/fightr0.af
      358085 5d5c22e4ce586feadefd285ca81350db  ./otra-de-windows/plain-backup/omf/fightr0.afb

      435969 0fcd29b249c145bab33f24c8341dd0a3  ./otra-de-windows/nvidia/Win2KXP/71.84/setup.ibt
      435969 0fcd29b249c145bab33f24c8341dd0a3  ./otra-de-windows/nvidia/Win2KXP/71.89/setup.ibt

      439296 933b377b2ce2f93c0df3bc99a1a45542  ./otra-de-windows/plain-backup/john/run/cygwin1.dll
      439296 933b377b2ce2f93c0df3bc99a1a45542  ./otra-de-windows/plain-backup/john/run/johns/386/cygwin1.dll
      439296 933b377b2ce2f93c0df3bc99a1a45542  ./otra-de-windows/plain-backup/john/run/johns/k6/cygwin1.dll
      439296 933b377b2ce2f93c0df3bc99a1a45542  ./otra-de-windows/plain-backup/john/run/johns/mmx/cygwin1.dll

      459544 de89c44f15d1bfbcca26778af838f720  ./otra-de-windows/nvidia/Win2KXP/71.84/engine32.cab
      459544 de89c44f15d1bfbcca26778af838f720  ./otra-de-windows/nvidia/Win2KXP/71.89/engine32.cab

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *