Windows 및 Linux의 폴더에서 동일한 해시를 갖는 방법은 무엇입니까?


0

나는 7zip을 사용하여 하위 폴더가있는 폴더의 해시를 계산했으며, 두 가지 옵션을 사용하여 파일 이름을 포함하거나 포함하지 않을 수 있습니다.

그러나 Linux 버전의 7zip에서는 해시 기능이 구현되지 않습니다. 나는 다른 것을 시도했다. 행동 양식 결과를 복제하지만,이 방법들 중 어느 것도 리눅스와 윈도우에서 같은 결과를 얻지는 못합니다.

결과의 예 :

" 7za.exe h -scrcsha1 myfolder "창에서 제공합니다 :

SHA1   for data:              D54D3168B16BFEE600C3A77E848A2A1C1DBCBC59
SHA1   for data and names:    BCE55085200581AD1774CC25AE065DE7DE60077D

반면에 리눅스에는 다음과 같은 것들이 있습니다.

find . -type f -exec sha1sum "$PWD"/{} \; | sha1sum
ee44137f2462bdfea87ec824dab514f288ae3e6c  -

또는

find . -type f | xargs sha1sum | sha1sum
8f971311a28bcdee36fab0ce87a892564622db40  -

그래서 한 플랫폼의 결과를 다른 플랫폼의 결과에 사용할 수 없습니다.

(하나의 파일에 대한 결과가 두 플랫폼에서 모두 동일한 지 확인했습니다.)


각 파일의 해시를 만들고이 옵션을 해싱 했습니까?
davidbaumann

2
귀하가 연결된 대답에 대해 무엇이 효과가 없었습니까? find . -type f -exec sha1sum "$PWD"/{} \; | sha1sum - 문제를 말해 줄 수 있니?
Attie

답변:


1

다음 명령을 실행하는 것만으로는 효과가 없습니다.

find . -type f | xargs sha512sum | sha512sum

직면 할 수있는 문제는 다음에 의해보고 된 파일의 순서입니다. find 시스템 간 (system-to-system) 또는 디렉토리 카피 (copy)마다 다르다.

대신 다음을 실행하십시오.

find . -type f | sort | xargs sha512sum | sha512sum

자유롭게 교환하십시오. sha512sum 다른 경우 - 예 : md5sum / sha1sum / sha256sum 귀하의 요구 사항에 따라.

큰 디렉토리 트리의 경우이 속도가 느려질 수 있으며이 경우 계층을 트래버스하는 데 더 복잡한 스크립트를 선호 할 수 있습니다.


예:

$ find . -type f | xargs sha512sum | sha512sum
097e56f6b751c1da15ce5b9dce853ffcc89e06e9cbe10a8dc0894dedb834d40dc4228c65e48bd53f136dd6a7700b0ab07e8e12e7100956db00b0d1b9ef0b9956  -

여기에는 파일 이름과 최종 해시의 콘텐츠가 포함되지만 메타 데이터 - 수정 시간, 권한 등은 포함되지 않습니다.


Windows에서 이러한 유틸리티를 사용하려면 " Linux 용 Windows 서브 시스템 "나는 방금 설치했는데 고통이없는 경험이었고 또한 find 님이 주문을보고했습니다.

Linux와 Windows에서 나무에서 심볼릭 링크가 어떻게 처리되는지 조심하십시오.


고마워,하지만 어떻게 윈도우에서 같은 해시 값을 얻을 수 있습니까?
Nygael

당신은 당신의 질문을 다음과 같은 결과로 편집 할 수 있습니까? find . -type f | xargs sha512sum 각 시스템에서 작은 예제 디렉토리를 사용해보십시오. 역 슬래시가 문제를 일으키고 있는지 궁금해 ... 아니면 디렉토리가 실제로 다른 경우.
Attie

오 ... 당신의 질문을 다시 읽었습니다. " Linux 용 Windows 서브 시스템 " 설정? 두 시스템에서 동일한 명령을 실행할 수 있어야합니다.
Attie

나는이 설치되어 있지 않지만, 내 경우에는 조금 과잉 보인다, 나는 독립 실행 형 exe 또는 비슷한 찾고 있어요. (궁극적으로 내 응용 프로그램 + 종속성을 설치 한 후 모든 컴퓨터에서 nodejs exec 명령 줄의 솔루션을 사용하고 싶습니다.)
Nygael

네가 NodeJS를 사용한다면, 이것은 다른 질문이다. 목표 달성을위한 일련의 유틸리티를 찾는 것이 아니라, 필요한 기능을 구현하는 방법에 관심이있다.
Attie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.