반응형
출처
https://stackoverflow.com/questions/39604202/listing-md5sum-for-all-files
모든 파일 md5sum 목록 보여주기
저는 파일의 목록과 이들의 md5sum를 생성하는 아래 명령어를 사용하려 합니다. 문제는 이름에 몇개 파일이나 폴더에서 공백이 있습니다. 어떻게 이를 다룰 수 있을까요?
find -type f -name \* | xargs md5sum
2개의 답변 중 1개의 답변
다음을 수행해 보세요.
find . -type f -exec md5sum {} +
이 명령어로 find는 찾은 파일로 md5sum을 실행할 것입니다.
MacOS: MacOS find man page에 따르면, find는 +옵션을 지원하지 않습니다. 대신에 덜 효율적인 (아래 3을 봐주세요.) 형식이 요구됩니다.
find . -type f -exec md5sum {} \;
노트:
-name \는 모든 파일을find로 찾으라고 합니다. 이는 기본값이기 때문에 그것을 지정할 필요는 없습니다.- 이름에 공백이 있는 것은 현대적인 파일 이름에 보편적인 현상입니다. 사실, 파일 이름에 개행이 있을 수도 있습니다. 결국,
xargs는-0또는--null옵션으로 NULL로 구분된 입력을 사용하지 않는다면 일반적으로 안전하지 않습니다. 이는 find의-print0으로 NULL로 구분된 출력을 생성한다고find를 실행하기 위해 결합되어 사용될 수 있습니다. 하지만-exec는 어려운 파일 이름에도 안전하게xargs를 실행할 수 있도록 최선의 것으로 실행하며,-exec형식이 주로 선호됩니다. - 만약 형식
-exec md5sum {} \;를 사용하였다면,find는 각 파일이 찾아질 때마다md5sum을 실행할 것입니다. 형식-exec md5sum {} +는 반면 명령어 줄에서 많은 파일 이름으로 사용될 수 있습니다. 이는 시작해야 될 프로세스의 수를 줄일 수 있습니다.
예시
위의 명령어의 샘플 출력입니다.
$ find . -type f -exec md5sum {} +
e75632e8a11db7513c2a9f25cb6c9627 ./file1
004dedba9b67f3a93924db548fd4d6ef ./file2
48645402a2cf6ada3548ad69d8d906db ./dir1/file1
6a182d8fe659c067897be7fde72903ea ./dir1/file2
추가 참고자료
- [리눅스]] md5sum: 무결성 확인 명령어
반응형
'리눅스 shell' 카테고리의 다른 글
| Redhat에서 cURL CA 번들 업데이트하는 방법? (0) | 2023.04.27 |
|---|---|
| sed 에서 2개 이상 검색으로 찾고 제일 마지막 조건에 매칭되는 문자열로 변환하는 방법? (2) | 2023.03.08 |
| Linux에서 Zip 명령 소개 (0) | 2022.06.04 |
| FIN_WAIT1 상태를 소켓에서 어떻게 제거하나요? (0) | 2022.05.21 |
| nobody로 스크립트 실행하기 위해 crontab 사용하는 방법 (0) | 2022.04.26 |