을 사용하는 bash 스크립트가 있습니다 dd
. 문제는 dd가 내 스크립트의 출력을 엉망으로 만드는 많은 출력을 발생시킨다는 것입니다. 주변을 검색해 보니 해결책을 찾았습니다.
dd if=boot1h of="/dev/r$temp1" >& /dev/null
대안이 있습니까, 아니면 /dev/null
유일한 방법으로 리디렉션합니까?
답변1
다음에 추가 status=none
:
dd if=boot1h of="/dev/r$temp1" status=none
'status=LEVEL' Transfer information is normally output to stderr upon receipt of the 'INFO' signal or when 'dd' exits. Specifying LEVEL will adjust the amount of information printed, with the last LEVEL specified taking precedence. 'none' Do not print any informational or warning messages to stderr. Error messages are output as normal. 'noxfer' Do not print the final transfer rate and volume statistics that normally make up the last status line. 'progress' Print the transfer rate and volume statistics on stderr, when processing each input block. Statistics are output on a single line at most once every second, but updates can be delayed when waiting on I/O.
답변2
dd(1)
매뉴얼 페이지 에서 :
status=noxfer
suppress transfer statistics
그러므로:
dd if=boot1h of="/dev/r$temp1" status=noxfer
이것은 여전히 출력됩니다
0+1 records in
0+1 records out
종료 시 가비지를 생성하므로 dd
데이터 싱크로 리디렉션하는 것이 실제로 유일한 옵션입니다.
답변3
나중에 참고할 수 있도록:
dd 출력을 억제하려면 다음과 같이 stderr을 /dev/null로 완전히 리디렉션합니다.
dd if=/dev/urandom of=sample.txt bs=5MB count=1 2> /dev/null
예를 들어, bash에서 time 명령을 사용하여 프로세스 시간을 측정하고 dd에서 생성된 출력을 가져오지 않고 결과를 변수에 할당하려는 경우 이 방법이 잘 작동합니다.
인용하다:http://www.unix.com/shell-programming-and-scripting/131624-how-suppress-dd-output.html
답변4
이와 같은 기능은 최신 버전의 BASH 및 ZSH에서도 작동합니다.
dd if=/path/to/file of=/path/to/another_file bs=1M count=1 &> /dev/null
PS 이것은 내가 실행한 것의 예일 뿐입니다...