Jawaban:
> Operator mengalihkan hasil biasanya ke file tetapi bisa ke perangkat. Anda juga dapat menggunakan >> untuk menambahkan.
Jika Anda tidak menentukan angka maka aliran output standar diasumsikan tetapi Anda juga dapat mengarahkan kesalahan
> filepengalihan stdout ke file
1> filepengalihan stdout ke file
2> filepengalihan stderr ke file
&> filepengalihan stdout dan stderr ke file
/dev/nulladalah perangkat nol yang mengambil input apa pun yang Anda inginkan dan membuangnya. Dapat digunakan untuk menekan output apa pun.
2>&1sintaks yang lebih tua sehingga &>tidak akan bekerja bertahun-tahun yang lalu tetapi keduanya setara.
Singkatnya, pengalihan stderr(fd 2) ke lubang hitam (membuang output dari perintah).
Beberapa kasus penggunaan yang lebih umum untuk pengalihan:
command > /dev/null 2>&1 &
Jalankan commanddi latar belakang, buang stdoutdanstderr
command >> /path/to/log 2>&1 &
Jalankan commanddan tambahkan stdout dan stderr ke file log.
Di Bash 4+, formulir yang lebih pendek (tapi kurang bisa dibaca) berfungsi
command &>> /path/to/log
> /dev/null 2>&1bukan &> /dev/null?
&>baru di Bash 4, yang pertama hanya cara tradisional, saya sudah terbiasa (mudah diingat).
&> /dev/nullmungkin tidak berfungsi di beberapa shell tetapi> / dev / null 2> & 1 akan bekerja di semua shell yang kompatibel dengan POSIX.
fn>target, di mana fnnomor file (0-2 biasanya, beberapa program menentukan lebih banyak angka) dan targetbiasanya nama file tetapi di sini adalah nomor file lain - diawali dengan &yang merupakan sintaks untuk "Saya ingin jumlah file bukan nama file".
/dev/nulldiperlakukan sebagai lubang hitam di Linux / Unix, sehingga Anda dapat memasukkan apa saja ke dalam ini tetapi Anda tidak akan bisa mendapatkannya kembali /dev/null.
Selanjutnya, 2>berarti bahwa Anda mengarahkan ulang (yaitu >) stderr (yaitu 2) ke dalam lubang hitam (yaitu /dev/null)
Perintah Anda adalah:
grep -i 'abc' content 2>/dev/null
Jangan coba akhiri dengan garis miring lain seperti ini - 2>/dev/null/(ini bukan direktori).
konten grep -i 'abc' akan menghasilkan output yang ditampilkan di konsol Anda, termasuk kesalahan apa pun.
Menentukan 2>/dev/nullakan menyaring kesalahan sehingga tidak akan keluar ke konsol Anda.
Secara lebih rinci: 2 mewakili deskriptor kesalahan, yang merupakan tempat penulisan kesalahan. Secara default mereka dicetak pada konsol.
\> mengalihkan output ke tempat yang ditentukan, dalam hal ini /dev/null
/dev/null adalah perangkat Linux standar tempat Anda mengirim keluaran yang ingin Anda abaikan.
> /dev/null 2>&1dan&> /dev/null