Saya mencoba memahami konsep file khusus di Linux. Namun, memiliki file khusus di /dev
tampak sangat konyol ketika fungsinya dapat diimplementasikan oleh beberapa baris dalam C sepengetahuan saya.
Selain itu, Anda dapat menggunakannya dengan cara yang hampir sama, yaitu menyalurkan ke null
alih-alih mengarahkan ulang ke /dev/null
. Apakah ada alasan khusus untuk menjadikannya sebagai file? Bukankah menjadikannya file menyebabkan banyak masalah lain seperti terlalu banyak program yang mengakses file yang sama?
Jawaban yang Diterima:
Selain manfaat kinerja menggunakan perangkat khusus karakter, manfaat utamanya adalah modularitas . /dev/null dapat digunakan di hampir semua konteks di mana file diharapkan, tidak hanya di pipa shell. Pertimbangkan program yang menerima file sebagai parameter baris perintah.
# We don't care about log output.
$ frobify --log-file=/dev/null
# We are not interested in the compiled binary, just seeing if there are errors.
$ gcc foo.c -o /dev/null || echo "foo.c does not compile!".
# Easy way to force an empty list of exceptions.
$ start_firewall --exception_list=/dev/null
Ini semua adalah kasus di mana menggunakan program sebagai sumber atau sink akan sangat merepotkan. Bahkan dalam kasus pipa shell, stdout dan stderr dapat diarahkan ke file secara independen, sesuatu yang sulit dilakukan dengan executable sebagai sink:
# Suppress errors, but print output.
$ grep foo * 2>/dev/null