해시섬을 통해 파일을 검색하는 방법

해시섬을 통해 파일을 검색하는 방법

tree명령 및 명령 grep을 사용하여 파일 시스템에서 파일을 자주 검색 find하지만 최근에 사이트에서 일부 콘텐츠를 다운로드했지만 저장한 위치를 잊어버렸습니다. 이제 SHA256sum을 알고 있지만 모르겠습니다. 그것은 이름인데 나는 그 내용을 전혀 모른다. 그렇다면 특정 해시섬과 일치하는 파일을 찾기 위해 내 시스템을 검색할 수 있는 방법이 있습니까? 그리고 아직 쉬운 방법이 내장되어 있지 않은 경우 누군가 이 작업을 완료할 수 있는 스크립트를 제안해 줄 수 있습니까?


OS 정보:

Description:    Ubuntu 15.04
Release:    15.04

답변1

이것을 사용하십시오:

#!/bin/bash
saved='b3eeb9430063ee4db5f80b97d4dfb4c4f7667e6e58fd12f849a4ed6779b7f212'
find /home/user/ -type f | while IFS= read -r file; do
    [[ "$(sha256sum "$file" | cut -d' ' -f1)" == $saved ]] && echo "$file"
done
  • saved가지고 있는 파일의 해시섬이 포함됩니다.

  • /home/user/(원하는 위치로 대체) 및 하위 디렉터리 의 모든 파일을 찾아 해당 해시합을 다음과 일치시킵니다.saved

  • 일치하면 파일 이름이 인쇄됩니다.

sudo필요한 권한이 없는 장소를 검색하려는 경우를 대비 하여 스크립트를 실행하세요 .

이 작업은 모든 파일의 해시를 계산한 다음 해당 파일과 일치시키려고 시도하므로 CPU를 많이 사용합니다 saved. 나는 당신이 원하는 것을 달성할 수 있는 독립형 도구를 알지 못하므로, 주어진 작업과 입력을 고려하여 이것이 갈 수 있는 방법일 수 있습니다.

find또한 지난 24시간 동안 파일에 액세스했는지 여부와 같은 관련 옵션을 적용하여 검색할 파일의 양을 최소화할 수 있습니다 find /location -atime 0 -type f.

관련 정보