파일을 이동하고 진행 상황을 보려면 어떻게 해야 합니까(예: 진행률 표시줄 사용)?

파일을 이동하고 진행 상황을 보려면 어떻게 해야 합니까(예: 진행률 표시줄 사용)?

대용량 디렉토리 이동시 mv진행률(%)을 볼 수 있는 방법이 있나요 ? cp젠투의 명령에는 -g진행 상황을 표시하는 스위치가 있습니다.

답변1

progress실행 명령과 관련된 설명자를 찾고 진행률과 속도를 표시할 수 있는 새로운 도구가 있습니다 .여기에서 찾을 수 있습니다

progress -w

실행 중인 모든 cp, mv 및 기타 작업의 통계 출력

답변2

더 간단한 솔루션이 있을 때 coreutil에서 바이너리를 덮어쓰는 아이디어가 마음에 들지 않으므로 여기에 내 방법이 있습니다.

동기화: rsync는 파일을 복사하고 -P진행률 표시줄 스위치를 갖습니다. 따라서 rsync가 설치되어 있으면 쉘 도트 파일에서 간단한 별칭을 사용할 수 있습니다.

alias cp='rsync -aP'

단점은 rsync가 cp보다 약간 느리다는 것입니다. 하지만 이를 시간에 맞춰 측정하고 스스로 결정해야 합니다. 저는 그걸로 괜찮습니다 :-)

쉘 스크립트: 쉘 스크립트는 진행률 표시줄을 생성할 수도 있습니다. 얼마전에 인터넷에서 본건데 출처가 기억이 안나네요.

#!/bin/sh
cp_p()
{
   strace -q -ewrite cp -- "${1}" "${2}" 2>&1 \
      | awk '{
        count += $NF
            if (count % 10 == 0) {
               percent = count / total_size * 100
               printf "%3d%% [", percent
               for (i=0;i<=percent;i++)
                  printf "="
               printf ">"
               for (i=percent;i<100;i++)
                  printf " "
               printf "]\r"
            }
         }
         END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
}

이것은 다음과 같습니다:

% cp_p /home/echox/foo.dat /home/echox/bar.dat
66% [===============================>                      ]

술집:

'bar' - ASCII 진행률 표시줄이 있는 'cat'

bar모든 유형의 작업(cp, tar 등)에 대한 프로세스 표시줄을 표시하는 데 사용되는 작은 쉘 스크립트입니다. 다음에서 예제를 찾을 수 있습니다.프로젝트 홈페이지.

또한 Bourne Shell용으로 작성되었으므로 근처 어디에서나 실행할 수 있습니다.

답변3

cp 및 mv의 패치 버전을 빌드할 수 있으며 둘 다 -g 스위치를 지원하여 진행 상황을 표시합니다. 지침과 패치 포함이 페이지.하지만: 페이지에서 작업 과정을 안내합니다.

$ sudo cp src/cp /usr/bin/cp
$ sudo cp src/mv /usr/bin/mv

원래 cp와 mv를 덮어씁니다. 여기에는 두 가지 단점이 있습니다. 첫째, 최신 coreutils 패키지가 시스템에 도착하면 덮어쓰게 됩니다. 둘째, 패치 버전에 문제가 있는 경우 표준 cp 및 mv에 의존하는 스크립트가 중단될 수 있습니다. 차라리 다음과 같이 하고 싶습니다.

$ sudo cp src/cp /usr/local/bin/cpg
$ sudo cp src/mv /usr/local/bin/mvg

사용자가 컴파일한 프로그램의 파일을 /usr/local/bin에 복사하고 다른 이름을 지정합니다. 따라서 진행률 표시줄을 원할 때 mvg -g bigfile /mnt/backup일반적으로 mv라고 말하고 사용합니다.

이렇게 할 수도 alias mvg="/usr/local/mvg -g"있습니다. 그냥 말하고 mvg bigfile /mnt/backup진행률 표시줄을 직접 가져오면 됩니다.

답변4

목표가 진행 표시줄을 사용하여 디렉터리를 이동/복사하는 것이지만 비터미널 GUI를 피하는 것이라면 mc(Midnight Commander)가 좋은 선택입니다.

관련 정보