Mari kita pisahkan >> /dev/null 2>&1
pernyataan menjadi beberapa bagian:
Bagian 1: >>
pengalihan output
Ini digunakan untuk mengarahkan output program dan menambahkan output di akhir file. Lebih...
Bagian 2: /dev/null
file khusus
Ini adalah file khusus Pseudo-devices .
Perintah ls -l /dev/null
akan memberi Anda detail file ini:
crw-rw-rw-. 1 root root 1, 3 Mar 20 18:37 /dev/null
Apakah kamu mengamati crw
? Yang berarti itu adalah file pseudo-perangkat yang tipe -karakter-file khusus yang menyediakan akses serial.
/dev/null
menerima dan membuang semua input; tidak menghasilkan keluaran (selalu mengembalikan indikasi akhir file saat dibaca). Referensi: Wikipedia
Bagian 3: 2>&1
deskriptor file
Setiap kali Anda menjalankan suatu program, sistem operasi selalu membuka tiga file, input standar, output standar, dan kesalahan standar seperti yang kita tahu setiap kali file dibuka, sistem operasi (dari kernel ) mengembalikan integer non-negatif yang disebut deskriptor file . Deskriptor file untuk file-file ini adalah 0, 1, dan 2, masing-masing.
Jadi 2>&1
sederhananya mengatakan redirect standard error ke output standar.
&
berarti apa pun yang berikut adalah deskriptor file, bukan nama file.
Singkatnya, dengan menggunakan perintah ini Anda memberi tahu program Anda untuk tidak berteriak saat mengeksekusi.
Apa pentingnya menggunakan 2>&1
?
Jika Anda tidak ingin menghasilkan output apa pun, bahkan dalam kasus beberapa kesalahan yang dihasilkan di terminal. Untuk menjelaskan lebih jelas, mari kita perhatikan contoh berikut:
$ ls -l > /dev/null
Untuk perintah di atas, tidak ada output yang dicetak di terminal, tetapi bagaimana jika perintah ini menghasilkan kesalahan:
$ ls -l file_doesnot_exists > /dev/null
ls: cannot access file_doesnot_exists: No such file or directory
Meskipun saya mengarahkan output ke /dev/null
, itu dicetak di terminal. Itu karena kita tidak mengarahkan output kesalahan /dev/null
, jadi untuk mengarahkan output kesalahan juga, kita perlu menambahkan 2>&1
:
$ ls -l file_doesnot_exists > /dev/null 2>&1
>&- 2>&-
.