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.