Saya tidak yakin apakah Anda mencoba menyembunyikan STDERR atau mengalihkannya ke STDOUT.
Untuk mengalihkan STDOUT ke file:
pkg_add emacs-23.4,2.tbz > stdout.log
Untuk mengalihkan STDOUT dan STDERR ke file:
pkg_add emacs-23.4,2.tbz > & stdxxx.log
Untuk mengalihkan STDOUT ke file dan menyembunyikan STDERR:
( pkg_add emacs-23.4,2.tbz > stdout.log ) > & /dev/null
Untuk mengarahkan kembali STDOUT ke konsol dan menyembunyikan STDERR:
( pkg_add emacs-23.4,2.tbz > /dev/tty ) > & /dev/null
Untuk mengarahkan STDOUT ke konsol dan STDERR ke file:
( pkg_add emacs-23.4,2.tbz > /dev/tty ) > & stderr.log
Untuk mengalihkan STDOUT ke file dan STDERR ke file:
( pkg_add emacs-23.4,2.tbz > stdout.log ) > & stderr.log
EDIT: Alasan mengapa ini berhasil adalah bahwa tindakan dalam () terjadi lebih dulu; Ergo, jika kami telah mengarahkan kembali STDOUT, maka itu tidak akan lagi tersedia di luar (). Ini meninggalkan kita hanya dengan STDERR, dan kemudian kita dapat mengarahkannya seperti yang diinginkan.
sh
.