dd 상태/결과 메시지를 파일에 어떻게 쓰나요?

dd 상태/결과 메시지를 파일에 어떻게 쓰나요?

dd명령을 사용하여 디스크 속도를 확인합니다.

dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct

다음과 같은 내용을 반환합니다.

1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1,1 GB, 1,0 GiB) copied, 8,52315 s, 126 MB/s

dd이제 이 출력을 내가 쓰고 있는 파일이 아닌 별도의 파일로 파이프하고 싶습니다 .

추가해 보았습니다

>> /tmp/foo

또는

| sudo tee /tmp/foo

command 를 실행 dd하지만 이는 단지 빈 파일을 생성할 뿐입니다.

답변1

다른 명령 앞이나 뒤에 파이프를 삽입 할 수 있도록 dd해당 정보 메시지가 표준 출력 대신 표준 오류에 기록됩니다.

OpenBSD 매뉴얼dd이를 명시적으로 언급합니다(그러나우분투 매뉴얼이 사실은 무시된 것처럼 보이지만 더 완전한 페이지 info에 언급되어 있습니다 .)

완료 시 dd전체 및 부분 입력 및 출력 블록 수와 잘린 입력 레코드가 표시됩니다.표준 오류 출력.

명령에서 표준 오류를 리디렉션하려면 를 사용합니다 2>filename. 표준 오류 스트림을 자르지 않고 기존 파일에 추가하려면 2>>filename.

예를 들어:

dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>dd.txt

첫 번째 예제의 추가된 출력(using) >>과 두 번째 예제의 잘린 출력(using)을 tee혼합 하고 있다는 점에 유의하세요. 파일에 추가하려면 tee를 사용하십시오 tee -a.

답변2

dd출력은 실제로 인쇄되지 stderr않습니다.stdout

stderr다음과 같이 파일을 명령으로 리디렉션할 수 있습니다 dd.

$ dd if=/dev/zero of=/path/file bs=1G count=1 oflag=direct 2>> /path/to/file

관련 정보