일부 Linux 도구는 기본적으로 STDOUT 대신 STDERR에 기록하는 이유는 무엇입니까?

일부 Linux 도구는 기본적으로 STDOUT 대신 STDERR에 기록하는 이유는 무엇입니까?

일부 Linux 유틸리티가 "정상" 작업의 출력을 STDOUT 대신 STDERR로 보내는 이유는 무엇입니까?

예를 들어 다음 명령을 실행하면(CentOS 7.3에서):

/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg 1> /dev/null ; echo $?

종료 상태가 0이고 오류가 없더라도 TTY에서 출력을 볼 수 있습니다.

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1ef39414718640fe9f6ec0f6d65fdc3e
Found initrd image: /boot/initramfs-0-rescue-1ef39414718640fe9f6ec0f6d65fdc3e.img
done
0

다른 프로그램에서도 이 작업을 수행할 수 있다는 것을 알았습니다. 좋은 설명이 있는지 궁금합니다.

참고로 RPM %post 스크립트에서 이 줄을 호출해야 하며 "정상" 출력을 리디렉션하여 /dev/null실제 "오류" 유형 메시지만 캡처하려고 합니다. 이 특정 명령은 -q quiet스위치를 제공하지 않습니다.

답변1

grub2-mkconfig일반적으로 생성된 구성 파일은 다음 위치에 기록됩니다. 표준 출력이렇게 하면 쉽게 리디렉션할 수 있습니다. 상태 정보 쓰기표준 에러리디렉션된 출력을 방해하기 때문입니다. 이 매개변수를 대신 사용할 때 후자의 동작은 변경되지 않고 유지되며 -o일관성을 위해 변경되지 않은 상태로 유지되어야 합니다.

# grub2-mkconfig >/tmp/grub.conf.a
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-4.8.15-200.fc22.x86_64
Found initrd image: /boot/initramfs-4.8.15-200.fc22.x86_64.img
Found linux image: /boot/vmlinuz-4.4.14-200.fc22.x86_64
Found initrd image: /boot/initramfs-4.4.14-200.fc22.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-b764638bab7b90d16d0510c14a429d80
Found initrd image: /boot/initramfs-0-rescue-b764638bab7b90d16d0510c14a429d80.img
Found Fedora release 22 (Twenty Two) on /dev/sda2
done
# grub2-mkconfig -o /tmp/grub.conf.b
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-4.8.15-200.fc22.x86_64
Found initrd image: /boot/initramfs-4.8.15-200.fc22.x86_64.img
Found linux image: /boot/vmlinuz-4.4.14-200.fc22.x86_64
Found initrd image: /boot/initramfs-4.4.14-200.fc22.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-b764638bab7b90d16d0510c14a429d80
Found initrd image: /boot/initramfs-0-rescue-b764638bab7b90d16d0510c14a429d80.img
Found Fedora release 22 (Twenty Two) on /dev/sda2
done
# diff -u /tmp/grub.conf.{a,b}

관련 정보