다음 명령을 사용하여 새 파일(빈 파일)을 만들려고 합니다.
dd if=/dev/zero of=file.txt count=10240 bs=10240
또한 다음과 같이 대화 상자 출력 --gauge를 사용하고 싶습니다.
dd if=/dev/zero | pv | dd of=output.dat count=10240 bs=102400 iflag=fullblock | dialog --gauge "testing" 10 70 0
또한 다음 변형을 시도했습니다.
(pv -n /dev/zero | dd if=/dev/zero of=output.dat bs=1000M count=1) | dialog --guage "Creating a file..." 10 70 0
그러나 작동하지 않습니다. 파일이 완료되면 알려주세요.
감사해요.
답변1
dialog
건너 뛰고 "일반"을 사용하는 것이 좋습니다.pv
다음과 같이 명령줄에서 진행 상황을 확인하세요.
# dd if=/dev/zero bs=10240 count=102400| bash -c 'pv -s 1g > /media/sudodus/usbdata/output.dat'
320MiB 0:00:07 [39,2MiB/s] [=========> ] 31% ETA 0:00:15
...
1000MiB 0:00:34 [29,1MiB/s] [===============================> ] 97%
102400+0 records in
102400+0 records out
1048576000 bytes (1,0 GB, 1000 MiB) copied, 34,4327 s, 30,5 MB/s
나는 USB 플래시 드라이브에 글을 써서 더 느리고 쉽게 "볼" 수 있도록 했습니다.
답변2
제가 직접 해보려고 했으니 해결책은 이렇습니다.
pv
stderr에 기록하므로 출력을 stdout으로 리디렉션해야 합니다.
암호화된 파티션에 0을 쓰고 싶습니다. 그래서:
#dd if=/dev/zero of=/dev/mapper/swap_crypt bs=1M
dd: error al escribir en '/dev/mapper/swap_crypt': No queda espacio en el dispositivo
4269+0 registros leídos
4268+0 registros escritos
4475322368 bytes (4,5 GB, 4,2 GiB) copied, 4,1489 s, 1,1 GB/s
출력이 필요하지 않으므로 dd
오류 외에는 아무것도 인쇄하지 말라고 지시합니다 status=none
.
# dd if=/dev/zero of=/dev/mapper/swap_crypt bs=1M status=none
#
좋아, 출력이 없어! 이제 pv를 사용하여 진행 상황을 모니터링하고, 기록된 바이트 수도 알고 있으므로 전송된 바이트를 기준으로 백분율을 인쇄하도록 pv에 지시할 수 있습니다. -n
전송될 백분율과 바이트를 기록합니다 -s
.
# dd if=/dev/zero | pv -n -s 4475322368 | dd of=/dev/mapper/swap_crypt bs=1M status=none
16
32
43
52
61
69
77
84
88
dd: error al escribir en '/dev/mapper/swap_crypt': No queda espacio en el dispositivo
100
#
이제 stderr를 stdout으로 리디렉션하고 다음으로 파이프합니다 dialog --gauge
.
#(dd if=/dev/zero | pv -n -s 4475322368 | dd of=/dev/mapper/swap_crypt bs=1M status=none) 2>&1 | dialog --title "Status" --gauge "Writing zeros..." 10 60 0
이제 전송하기 전에 얼마나 많은 바이트가 소요되는지 파악하고 pv의 -s 매개변수에 있는 숫자를 바꾸면 됩니다(간단한 작업).
답변3
주제에서 약간 벗어났지만 status=progress
피연산자를 사용하면 dd
다음과 같은 결과를 얻을 수 있습니다.
748901888 bytes (749 MB, 714 MiB) copied, 3 s, 250 MB/s