Я не уверен, пытаетесь ли вы скрыть STDERR или перенаправить его на STDOUT.
Чтобы перенаправить STDOUT в файл:
pkg_add emacs-23.4,2.tbz > stdout.log
Чтобы перенаправить STDOUT и STDERR в файл:
pkg_add emacs-23.4,2.tbz > & stdxxx.log
Чтобы перенаправить STDOUT в файл и скрыть STDERR:
( pkg_add emacs-23.4,2.tbz > stdout.log ) > & /dev/null
Чтобы перенаправить STDOUT на консоль и скрыть STDERR:
( pkg_add emacs-23.4,2.tbz > /dev/tty ) > & /dev/null
Чтобы перенаправить STDOUT на консоль и STDERR в файл:
( pkg_add emacs-23.4,2.tbz > /dev/tty ) > & stderr.log
Чтобы перенаправить STDOUT в файл и STDERR в файл:
( pkg_add emacs-23.4,2.tbz > stdout.log ) > & stderr.log
РЕДАКТИРОВАТЬ: Причина, почему это работает, в том, что действие в () происходит в первую очередь; Следовательно, если мы перенаправили STDOUT, он больше не будет доступен за пределами (). Это оставляет нам только STDERR, и тогда мы можем перенаправить его по желанию.
sh
.