GNU/Linux >> Belajar Linux >  >> Linux

Redirect semua output ke file di Bash

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


Linux
  1. Cara Mengarahkan Output ke File dan Stdout di Linux

  2. File Setara ".bashrc" Dibaca Oleh Semua Shell?

  3. Bagaimana Cara Mengarahkan Hanya Stderr?

  1. Bagaimana cara mengarahkan output dari system() ke file?

  2. Redirect semua output ke file menggunakan Bash di Linux?

  3. Cara mengarahkan output dari layanan systemd ke file

  1. Bagaimana Cara Mengarahkan Output Program Ke File Zip??

  2. Cara Mengarahkan Keluaran Program Dan Masih Melanjutkannya ke Stdout?

  3. bash:redirect stderr ke file dan stdout + stderr ke layar