RMF Patch Tool을 만들면서 정팀장님이 알려준 command 이다.


shell>> (find <directory name> -name "<file name>" | xargs -i md5sum {}) | cut -d" " -f1 | sort | uniq -c | sort -rn      
   1489 ad4b435cf7bb1510450ac462e5989bd4
    337 d8c24915ea62f9fab3f9b6bc19448bde
     22 d93bc56dca97d6af9d3a764cda23f4e5

이런식으로 결과가 나온다.

즉 <directory name> 폴더에 있는 <file name>의 파일들을 찾아 checksum 값에 따라서 분류 한 후 count를 하면
"ad4b435cf7bb1510450ac462e5989bd4" 값을 checksum 값으로 가지는 파일이 1489개
"d8c24915ea62f9fab3f9b6bc19448bde" 값을 가지는 파일이 337 개
"d93bc56dca97d6af9d3a764cda23f4e5" 값을 가지는 파일이 22개
이런식으로 출력되는 것이다.

위의 결과를 기준으로 특정 checksum 값을 가지는 파일 list를 구하려고 할 경우
shell>> (find <directory name> -name "<file name>" | xargs -i md5sum {}) | grep  <checksum>

<directory name>폴더내에 <file name> 이름을 가지는 파일 들 중 <checksum>값을 checksum 값으로 가지는 file들 list가 출력된다.

흠... 이래저래 요즘 shell 많이 배우게 된다.

참고로 위의 명령 중 xargs 명령은 javascript의 eval 명령문처럼 특정 명령을 만들어 실행 시켜 주는 그런 명령문이다.

'개발자세상 > Shell 관련' 카테고리의 다른 글

Shell 에서 FTP uploading check  (0) 2013.03.21
공용키 기반 인증  (0) 2010.01.26
서로 다른 디렉토리의 전체 파일 diff 실행하는 script  (0) 2009.01.30
VI 문자열 대치  (0) 2009.01.23
"join" command  (0) 2008.11.21
Posted by headiron
,