업데이트된 진행률 표시줄

업데이트된 진행률 표시줄

을 수행할 때 신뢰할 수 있는 진행률 표시줄(또는 소요 시간에 대한 신뢰할 수 있는 정보)을 얻을 수 있습니까 updatedb?

답변1

이는 효율적인 솔루션은 아니지만 모든 것을 두 번 반복하는 것만큼 나쁘지는 않습니다.

에서 처리한 파일 수 updatedb는 다음과 같습니다.

updatedb -v | wc -l

또는 대략 다음과 같습니다:

find / -mount | wc -l

두 번 반복되기 때문에 이 명령을 사용하여 숫자를 얻을 수 없습니다.

그러나 사용된 inode 수를 사용할 수 있으며 이는 대략 동일합니다.

df -i | grep '/$' | awk '{print $3}'

updatedb -v이 값을 사용하면 명령이 실행되는 동안 얻은 거리를 계산할 수 있습니다 .

count=$(df -i | grep '/$' | awk '{print $3}')

sudo updatedb -v | while read
do
    printf "%3d\r" $((100 * (++i) / count))
done

printf의 출력에서 ​​모든 라인에 대해 호출되기 때문에 이는 매우 비효율적입니다 updatedb -v. printf일부 라인에만 적용하는 것이 더 좋습니다 .

count=$(df -i | grep '/$' | awk '{print $3}')

sudo updatedb -v | while read
do
    if (( ++i % (count/20) == 0 )); then
        printf "%3d\r" $((100 * i / count))
    fi
done

답변2

아니요, 그런 옵션은 없습니다. 또한 없어야 합니다.

이를 측정해야 하는 경우 먼저 시스템에 얼마나 많은 파일이 있는지 알아야 합니다. 즉, 모든 것을 두 번 반복하면 속도가 느려질 수 있습니다.

한 가지 명백한 예는 를 사용하여 커널 소스 코드를 추출하는 경우 파일 롤러가 모든 파일을 먼저 정리해야 하기 때문에(그렇지 않으면 진행률 표시줄이 잘못 표시될 수 있음) 를 사용하여 file-roller동일한 작업을 tar직접 수행하는 것보다 속도가 느리다는 것입니다. 추출 프로세스가 실제로 시작되기 전에.

관련 정보