So suchen Sie nach Dateien über Hashsummen

So suchen Sie nach Dateien über Hashsummen

Ich suche in meinem Dateisystem häufig nach Dateien, indem ich entweder den treeBefehl und grepoder den findBefehl verwende. Vor kurzem habe ich jedoch Inhalte von einer Site heruntergeladen, aber vergessen, wo ich sie gespeichert habe. Jetzt kenne ich die SHA256-Summe davon, aber ich kenne ihren Namen nicht und kenne auch nicht den Inhalt. Gibt es also eine Möglichkeit, mein System nach Dateien zu durchsuchen, die dieser bestimmten Hashsumme entsprechen? Und wenn es keine bereits integrierte einfache Möglichkeit gibt, kann mir dann jemand ein Skript vorschlagen, mit dem ich diese Aufgabe erledigen kann?


Betriebssysteminformationen:

Description:    Ubuntu 15.04
Release:    15.04

Antwort1

Benutze das:

#!/bin/bash
saved='b3eeb9430063ee4db5f80b97d4dfb4c4f7667e6e58fd12f849a4ed6779b7f212'
find /home/user/ -type f | while IFS= read -r file; do
    [[ "$(sha256sum "$file" | cut -d' ' -f1)" == $saved ]] && echo "$file"
done
  • savedenthält die Hashsumme der Datei, die Sie

  • Es findet alle Dateien in /home/user/(ersetzen Sie es durch den/die gewünschten Speicherort(e)) und Unterverzeichnissen und gleicht ihre Hashsummen mitsaved

  • Bei Übereinstimmung wird der Dateiname gedruckt

Führen Sie das Skript aus, sudowenn Sie nach Orten suchen möchten, für die Sie nicht über die erforderlichen Berechtigungen verfügen.

Beachten Sie, dass dieser Vorgang sehr CPU-intensiv ist, da er die Hashes aller Dateien berechnet und dann versucht, sie mit der savedeinen abzugleichen. Mir ist kein eigenständiges Tool bekannt, das das erreichen kann, was Sie wollen, daher ist dies angesichts der vorliegenden Aufgabe und Eingabe möglicherweise der richtige Weg.

Beachten Sie auch, dass Sie die Anzahl der zu durchsuchenden Dateien minimieren können, indem Sie entsprechende Optionen anwenden, findz. B. wenn auf die Datei innerhalb der letzten 24 Stunden zugegriffen wurde find /location -atime 0 -type f.

verwandte Informationen