답변:
사용하다 rsync --progress [SRC] [DST]
man rsync
매우 유용한 옵션이 많으므로 페이지를 확인하십시오 . -a
아카이브는 좋은 시작이지만 정확한 요구 사항에 따라 다릅니다.
파이프를 통한 복사는 특히 파일 기반 인 경우 복사 프로세스를 불필요하게 느리게합니다.
당신은 사용할 수 있습니다 tar
또는 pax
또는 cpio
:
mkdir -p dst &&
(cd src && tar cf - .) | pv -trb | (cd dst && tar xpf -)
v
를 추가 tar
하여 파일 이름을 볼 수도 있습니다 .
tar cf -
파일 및 해당 메타 데이터가 포함 된 스트림을 출력합니다. 파이프는 파이프를 통해 pv로 공급되어 tar
진행률 표시를 인쇄하는 동안 다른쪽에 tar
데이터를주고 다른 스트림은 해당 스트림의 데이터를 추출합니다. 세 명령 모두 동시에 실행되어 데이터를 처리하고 디스크에 저장된 것은 없으며 파이프 버퍼 이외의 메모리에는 아무것도 없으며 킬로바이트에 불과한 명령 내부 버퍼는 없습니다.
pv
전송할 데이터의 양을 알 방법이 없습니다. 해당 금액의 추정치가있는 경우 -s
옵션을 사용하여이 금액을 전달할 수 있습니다 ( du -sb src
파일이 충분히 크면 GNU 에서 적절한 근사치를 제공합니다)
다음은 진행 정보가있는 디렉토리를 복사하는 명령입니다.
작은 파일이 많은 경우 :
cp -av sourcedir targetdir | pv -l -s filecount > logfile
복사 된 파일 수에 따라 진행률이보고됩니다.
/dev/null
필요하지 않은 경우으로 리디렉션 할 수 있습니다 logfile
.
다음 명령을 사용하여 얻으십시오 filecount
.
find sourcedir | wc -l
큰 파일이 거의없는 경우 :
tar c sourcedir | pv -s size | tar x -C targetdir
복사 된 바이트를 기준으로 진행률을보고합니다.
targetdir
존재해야합니다.
다음 명령을 사용하여 얻으십시오 size
.
du -sh sourcedir
rsync를 사용하려는 경우 :
rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile
얻기 filecount
위의 그림과 같이.
동일한 시스템에서 복사하는 경우와 rsync -a
거의 동일합니다 cp -a
. rsync의 장점은 네트워크를 통해 복사하거나 이전 복사본을 업데이트 (또는 비교)하는 경우입니다.
자세한 내용은 여기를 참조하십시오.