Output Redirection - Standard Input, Standard Output, Standard Error, /dev/null
- Categories:
- tutorial
Di dunia Linux atau macOS, /dev/null
adalah seperti lubang hitam bagi data. Apapun hasil yang di-pipe ke situ akan hilang tanpa bekas.
echo "hello world"
# => hello world
echo "hello world" > /dev/null
# kosong, tidak menampilkan apapun
Menggunakan > /dev/null 2>&1
akan mengarahkan semua output (baik stdout
maupun stderr
) ke /dev/null
, sehingga tidak dicetak ke terminal.
Jadi standar input, output, dan error pada shell:
- stdin => fd 0 (default)
- stdout => fd 1 (default)
- stderr => fd 2 (default)
Saat menjalankan perintah > /dev/null
, maka:
- stdin => fd 0 (tetap)
- stdout => dialihkan ke
/dev/null
- stderr => fd 2 (tetap)
Kemudian 2>&1 /dev/null
akan mengarahkan:
- stdin => fd 0 (tetap)
- stdout => tetap
/dev/null
- stderr => dialihkan ke
stdout
File descriptor (fd) adalah handle unik yang mengarah pada suatu file atau resource lain di sistem operasi. Setiap proses memiliki akses ke fd 0 (stdin), fd 1 (stdout), dan fd 2 (stderr) sebagai cara untuk membaca dan menulis ke suatu resource.
Referensi: redirecting to /dev/null