find – ¿Encuentra un archivo cuando conoce su suma de comprobación?

Pregunta:

Tengo el md5sum de un archivo y no sé dónde está en mi sistema. ¿Existe alguna opción fácil de find para identificar un archivo en función de su md5 ? ¿O necesito desarrollar un pequeño guión?

Estoy trabajando en AIX 6 sin las herramientas GNU.

Respuesta:

Usando find :

find /tmp/ -type f -exec md5sum {} + | grep '^file_md5sum_to_match'

Si busca en / , puede excluir /proc y /sys consulte el siguiente ejemplo de comando de find :

También hice algunas pruebas, find toma más tiempo y menos CPU y RAM donde el script ruby ​​está tomando menos tiempo pero más CPU y RAM

Resultado de la prueba

Encontrar

[root@dc1 ~]# time find / -type f -not -path "/proc/*" -not -path "/sys/*" -exec md5sum {} + | grep '^304a5fa2727ff9e6e101696a16cb0fc5'
304a5fa2727ff9e6e101696a16cb0fc5  /tmp/file1


real    6m20.113s
user    0m5.469s
sys     0m24.964s

Encontrar con -prune

[root@dc1 ~]# time find / \( -path /proc -o -path /sys \) -prune -o -type f -exec md5sum {} + | grep '^304a5fa2727ff9e6e101696a16cb0fc5'
304a5fa2727ff9e6e101696a16cb0fc5  /tmp/file1

real    6m45.539s
user    0m5.758s
sys     0m25.107s

Guión Ruby

[root@dc1 ~]# time ruby findm.rb
File Found at: /tmp/file1

real    1m3.065s
user    0m2.231s
sys     0m20.706s

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım