Saya menjalankan perintah berikut:
pkg_add emacs-23.4,2.tbz 2> output.log
Output masih ditampilkan di terminal. Ketika saya menekan ↑, saya mengerti
pkg_add emacs-23.4,2.tbz 2 > output.log
dengan spasi sebelum2
.
Saya awalnya tidak meletakkan ini. saya coba
pkg_add emacs-23.4,2.tbz > output.log 2>&1
Sekali lagi, ketika saya menekan ↑, spasi telah ditambahkan .
Kenapa ini terjadi padaku?
Saya menjalankan csh di FreeBSD.
command-line
freebsd
io-redirection
csh
gadgetmo
sumber
sumber
sh
.pkg_add
FreeBSD, jadi saya berasumsi ini untuk pengguna root (/ bin / csh adalah default untuk root pada FreeBSD). Dalam hal ini Anda tidak harus mengganti shell ke / usr / local / bin / bash. / bin / sh dapat diterima. Anda juga bisa langsung beralih ke shell lain setelah masuk sebagai root.Saya tidak yakin apakah Anda mencoba menyembunyikan STDERR atau mengalihkannya ke STDOUT.
Untuk mengalihkan STDOUT ke file:
Untuk mengalihkan STDOUT dan STDERR ke file:
Untuk mengalihkan STDOUT ke file dan menyembunyikan STDERR:
Untuk mengarahkan kembali STDOUT ke konsol dan menyembunyikan STDERR:
Untuk mengarahkan STDOUT ke konsol dan STDERR ke file:
Untuk mengalihkan STDOUT ke file dan STDERR ke file:
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.
sumber
Saya tahu bagaimana melakukannya di Csh, tetapi menggunakan 2 cangkang:
Cara seperti itu memungkinkan untuk mengarahkan ulang hanya stderr ke file.txt, tanpa stdout - yaitu yang Anda inginkan.
sumber