2016-06-02 4 views
0

ID를 반복하고 파일의 체크섬을 비교할 수 있도록 파일 이름에 고유 한 ID를 갖고 싶습니다. 파일 이름마다 고유 한 ID를 가질 수 있도록 파일 이름에 대한 체크섬을 사용할 수 있습니까? 다른 아이디어를 환영합니다.셸에서 문자열에 체크섬 (md5)을 생성 할 수 있습니까?

+0

당신은 파일 내용의 경우는 SI와 함께 작동합니다 mktemp는 시도 – PerroVerd

답변

3

원하는 것은 무엇입니까?

일반 문자열 :

[email protected]:~$ echo "Hello, checksum!" | md5sum 
9f898618b071286a14d1937f9db13b8f - 

그리고 파일 내용 :

[email protected]:~$ md5sum agent.yml 
3ed53c48f073bd321339cd6a4c716c17 - 
+3

수 mple mdsum agent.yml을 사용하면 고양이를 사용할 필요가 없습니다 – PerroVerd

+0

@PerroVerd, 맞습니다 – SerCe

3

예는 md5sumbasename $0를 사용 가능하다 내가 아래 스크립트를 가정하면 현재 파일

의 이름을 제공합니다 이름이 md5Gen.sh

,

스크립트를 실행하면 예, 문자열의 MD5를 얻을 수있다

md5Gen.sh 911949bd2ab8467162e27c1b6b5633c0 - 
0

나에게 줄 것입니다 :

$ printf '%s' "This-Filename" | md5sum 
dd829ba5a7ba7bdf7a391f2e0bd7cd1f - 

더 줄 바꿈이 끝이 없다는 것을 이해하는 것이 중요합니다 인쇄 된 문자열의 bash는 동등한 사용하는 것입니다 echo -n :

$ echo -n "This-Filename" | md5sum 
dd829ba5a7ba7bdf7a391f2e0bd7cd1f - 

그렇지 않으면 해시 텍스트의 일부가 아닌 줄 바꿈의 포함으로 변경 때문에 (bash는 유효)을 -n가 중요하다

$ echo "This-Filename" | md5sum 
7ccba9dffa4baf9ca0e56c078aa09a07 - 
또한 내용을 파일에 적용

: 당신은 고유 한 파일 이름을 원하는 경우

$ echo -n "This-Filename" > infile 
$ md5sum infile 
dd829ba5a7ba7bdf7a391f2e0bd7cd1f infile 

$ echo "This-Filename" > infile 
$ md5sum infile 
7ccba9dffa4baf9ca0e56c078aa09a07 infile