Pertanyaan Apa artinya 2> / dev / null?


Saya ingin penjelasan singkat tentang baris perintah berikut:

grep -i 'abc' content 2>/dev/null 

149
2017-09-26 08:21


asal




Jawaban:


Operator> mengalihkan output biasanya ke file tetapi bisa ke perangkat. Anda juga dapat menggunakan >> untuk menambahkan.

Jika Anda tidak menentukan nomor maka aliran output standar diasumsikan tetapi Anda juga dapat mengarahkan kesalahan

> file redirect stdout ke file
1> file redirect stdout ke file
2> file redirects stderr ke file
&> file redirect stdout dan stderr ke file

/dev/null adalah perangkat null yang dibutuhkan masukan apa pun yang Anda inginkan dan membuangnya. Ini dapat digunakan untuk menekan output apa pun.


217
2017-09-26 08:38



apakah ada perbedaan antara > /dev/null 2>&1 dan &> /dev/null - Alexander Mills
Dalam praktek hari ini saya tidak berpikir ada 2>&1 adalah sintaks yang lebih tua &> tidak akan bekerja bertahun-tahun yang lalu tetapi keduanya setara. - Warren Hill


Singkatnya, ia mengarahkan ulang stderr (fd 2) ke lubang hitam (membuang output dari perintah).

Beberapa kasus penggunaan yang lebih umum untuk pengalihan:

command > /dev/null 2>&1 &

Menjalankan command di latar belakang, buang stdout dan stderr

command >> /path/to/log 2>&1 &

Menjalankan command dan tambahkan stdout dan stderr ke file log.


16
2017-09-26 08:32



Apakah ada alasan bagus untuk digunakan > /dev/null 2>&1 dari pada &> /dev/null? - Craig McQueen
@CraigMcQueen &> baru di Bash 4, yang pertama hanya cara tradisional, saya hanya begitu terbiasa (mudah diingat). - Terry Wang


/dev/null diperlakukan sebagai lubang hitam di Linux / Unix, sehingga Anda dapat memasukkan apa pun ke dalam ini tetapi Anda tidak akan bisa mendapatkannya kembali /dev/null.

Lebih lanjut, 2> berarti Anda mengalihkan (mis. >) stderr (yaitu 2) ke dalam lubang hitam (yaitu /dev/null)

Perintah Anda adalah:

grep -i 'abc' content 2>/dev/null 

Jangan mencoba mengakhiri dengan garis miring lain seperti ini - 2>/dev/null/ (Ini bukan direktori).


5
2018-06-11 10:57