하드 드라이브에서 일부 파일을 복구했지만 이름이 변경되었습니다. 그리고 복구된 파일의 md5 파일도 찾았습니다.
md5 파일을 사용하여 파일 이름을 복구하는 방법은 무엇입니까?
답변1
먼저 복구된 각 파일의 이름을 MD5가 포함된 이름으로 바꾸거나 연결합니다.
그런 다음 파일을 반복 while read md5 name
하고(아마도 md5name 사용) 원래 파일 이름으로 이름을 바꾸거나 링크합니다.
파일이 md5sum에 의해 생성된 형식이라고 가정하면 다음과 같이 작동합니다.
for x in *
do
mv "$x" `md5sum < "$x" | cut -d' ' -f1`
done
cat /elsewhere/md5file |
while read md5 name
do
mv "$md5" "$name"
done
첫 번째 단계에서 MD5 목록의 이름을 바꾸지 마십시오. 나는 그것이 /elsewhere/
당신의 집이나 /tmp/ 등에 넣을 수 있는 가상의 위치 에 있다고 가정합니다.
답변2
단계별로 시도해 보세요.
md5sum * | awk 'NR==FNR {FN[$1] = $2; next} {print "mv -v \"" $2 "\" \"" FN[$1] "\""}' md5file -
이렇게 하면 작업 디렉터리의 각 파일에 대한 md5sum 서명이 생성되고, 이를 awk
이전 md5 파일의 "이전" 파일 이름을 서명으로 색인화된 배열로 읽는 스크립트로 파이프된 다음 stdin( -
, 파이프)에서 읽어 인쇄합니다. 해당 mv
명령을 표준 출력으로 보냅니다. | sh
제안 사항이 만족스러우면 이를 셸( )에 파이프하세요.