내 Linux 시스템에서 대용량 파일을 복사해야 합니다.
예:
cp source.txt target.txt
각 복사 파일의 복사가 아직 진행 중임을 표시하기 위해 진행률 표시줄을 만들고 싶습니다.
예"
cp file file1
파일 복사>파일1…
cp moon mars
복사달 > 화성...
답변1
즉, cp
진행률 표시줄 출력에 대한 기본 기능을 찾을 수 없습니다. 왜? 많은 이유. 그러나 몇 가지 옵션이 있습니다.
다양한 도구를 사용하세요.
rsync
, @ user1404316이 언급했듯이--progress
:rsync -P largeFile copyLocation
추가 의미 체계가 필요하지 않은 경우
cp
리디렉션을 통해 ("Pipe Viewer")를 사용하여rsync
새 파일을 만듭니다 .pv
stdout
pv < largeFile > copyLocation
만약 너라면하다
progress
해당 열에 대해 특별히 제공되지는 않지만 사용할 수 있는 추가 의미 체계가 필요합니다 . 그것은 붙어있다이미 실행 중프로세스이므로 다음과 같이 호출할 수 있습니다.# In one shell $ cp largeFile copyLocation # In another shell $ progress -m [ 4714] cp /home/hunteke/largeFile 1.1% (114 MiB / 10.2 GiB) # -m tells progress to continually update
또 다른 옵션은
gcp
진행률 표시줄에 대해 원하는 작업을 정확하게 수행하는 것입니다.gcp largeFile copyLocation
또 다른 옵션은 URL
curl
처리 기능을 남용합니다file://
.curl -o copyLocation file:///path/to/largeFile
쉘 스크립트를 작성할 수 있습니다
답변2
rsync
기능 을 포함하여 대용량 파일을 복사할 수 있는 뛰어난 기능을 갖춘 복사 프로그램 --progress
이며 전송 중 데이터를 줄이는(따라서 복사 시간을 절약하는) 전송 중 압축 형식을 가지고 있습니다.
rsync --progress file1 file2
rsync
네트워크 연결 끊김으로 인해 중단되었을 수 있는 복제본을 복원하는 기능도 있습니다. 이를 활성화하려면 옵션을 사용해야 합니다 --partial --append-verify
. 네트워크를 통해 복사할 때 제가 생각할 수 있는 유일한 단점은 rsync
두 대의 컴퓨터에 설치해야 한다는 것입니다. 발신자와 수신자. man
자세한 내용 및 기타 모든 기능은 해당 페이지를 참조하세요.
어떤 이유로 설치할 수 없거나 rsync
설치하고 싶지 않은 경우, 간단하고 좋은 대안 은 다음 pv
과 같습니다.파이프 뷰어명령, 그것이 바로 당신이 요청한 것입니다.
pv from-file > to-file
pv
또한 포함됩니다많은시각화 옵션. man
사용 가능한 모든 혜택을 보려면 해당 페이지를 참조하세요 . 일반적으로 사용되는 몇 가지 옵션은 다음과 같습니다.
-p, --progress
-t, --timer
-e, --eta
-r, --rate
-a, --average-rate
-b, --bytes