다음 명령을 사용하여 ~700GiB 백업 파일을 확인했습니다.
$ find -type f -exec md5sum {} + | sort > ~/checksums
pv
이 작업에는 많은 시간이 걸리므로 명령에 통합하여 진행 상황을 표시하고 싶습니다 .
나는 이것을 할 수 있다:
$ find -type f -exec pv {} + | md5sum
그러나 모든 파일을 연결하고 하나의 체크섬만 생성합니다.
그렇다면 이를 포함 pv
하고 마지막에 체크섬으로 가득 찬 텍스트 파일을 어떻게 얻을 수 있습니까?
답변1
그런 파이프를 사용할 수 없기 때문에 첫 번째 명령은 전혀 실행되어서는 안 됩니다 -exec
(분명히원래 질문).
대신에:
find . -type f -exec md5sum {} + | sort -o ~/checksums
또는 pv
,
find . -type f -exec md5sum {} + | pv | sort -o ~/checksums
두 경우 모두 md5sum
호출은 가능한 한 많은 경로 이름을 사용하여 일괄 처리됩니다. sort
출력 find
(예: 의 출력 md5sum
)을 가져와서 지정된 파일 이름으로 정렬합니다. 두 번째 변형은 및 pv
사이에 추가로 삽입합니다 .find
sort
당신은 -exec pv {} | md5sum
사용할 수 없습니다개인 문서-exec
파이프는 각 파일에 대해 호출하는 인라인 셸 스크립트에 포함되어야 하기 때문입니다 . 그러나 올바른 -exec sh -c 'pv "$1" | md5sum' sh {} \;
것조차도 생성된 출력에서 파일 이름을 삭제하므로 md5sum
작동하지 않습니다. 이 pv
유틸리티는 cat
.