Semua sistem operasi POSIX memiliki 3 aliran:stdin, stdout, dan stderr. stdin adalah inputnya, yang dapat menerima stdout atau stderr. stdout adalah keluaran utama, yang dialihkan dengan >
, >>
, atau |
. stderr adalah keluaran kesalahan, yang ditangani secara terpisah sehingga pengecualian apa pun tidak diteruskan ke perintah atau ditulis ke file yang mungkin rusak; biasanya, ini dikirim ke semacam log, atau dibuang secara langsung, bahkan ketika stdout dialihkan. Untuk mengalihkan keduanya ke tempat yang sama, gunakan:
$command &> /some/file
EDIT :terima kasih kepada Zack karena telah menunjukkan bahwa solusi di atas tidak portabel--gunakan sebagai gantinya:
$command > file 2>&1
Jika Anda ingin menyembunyikan kesalahan, lakukan:
$command 2> /dev/null
Bagian itu ditulis ke stderr, gunakan 2>
untuk mengarahkannya. Misalnya:
foo > stdout.txt 2> stderr.txt
atau jika Anda ingin dalam file yang sama:
foo > allout.txt 2>&1
Catatan:ini berfungsi di (ba)sh, periksa shell Anda untuk sintaks yang tepat