Apa sih Maksud dari 1>/dev/null 2>&1 di GNU/Linux?
Banyak hal-hal baru yang bikin pusing jika kamu baru di dunia GNU/Linux. Salah satunya adanya simbol-simbol dalam perintah tertentu.
Jika kamu pernah bertemu skrip seperti ini:
$ grep -i 'abc' content 1>/dev/null 2&>1
Kamu mungkin akan bingung kenapa ada angka 1 dan 2 ? Lalu kenapa ada simbol > dan &? Dan apa itu /dev/null mengapa harus ditulis?
Kalau kamu ingin tau lebih, coba kamu buka terminal-mu dan jalankan perintah ini:
$ grep -i 'abc' content
Apa yang akan terjadi? Ya terminal akan memberikan output:
grep: content: No such file or directory

Nah perintah di atas kita gak mau munculin di layar, maka tambahkan 2 >/dev/null jadi seperti ini:
$ grep -i 'abc' content 2 >/dev/null
Nah pesan galat di atas gak muncul lagi kan? Kenapa bisa begitu? Berikut ini penjelasannya.
Penjelasan
Jadi setiap proses yang dijalankan di Unix dalam hal ini GNU/Linux wajib mendukung paling tidak tiga common descriptors yang didefinisikan oleh aplikasi POSIX.
Adapun tiga common descriptors itu adalah:
| Nilai | Nama | Disingkat |
|---|---|---|
| 0 | Standard Input | Stdin |
| 1 | Standard Output | Stdout |
| 2 | Standard Error | Stderr |
Kemudian untuk simbol-simbol di atas:
| Simbol | Makna |
|---|---|
| > | Meruskan perintah untuk dijadikan berkas |
| /dev/null | Adalah berkas jika dikirim ke sini akan selalu kosong atau semua pesan akan diabaikan |
| & | Adalah simbol untuk file descriptor. Tanpa menulis ini maka perintah setelah > akan dianggap berkas |
Nah jadi kalau ada perintah seperti ini.
$ grep -i 'abc' content 1>/dev/null 2&>1
Artinya kamu menjalankan aplikasi grep jika ia mengeluarkan pesan (stdout) maka ia harus ditulis ke /dev/null jika ada pesan galat (stderr) maka akan dikembalikan lagi ke stdin. Jadi pesan galatnya pun terabaikan.