Buradaki yanıtların çoğu [ 1 ] [ 2 ] [ 3 ] / dev / null öğesine yönlendirmek için tek bir açılı ayraç kullanır, şöyle:
command > /dev/null
Ancak / dev / null öğesine eklemek de işe yarar:
command >> /dev/null
Ekstra karakter hariç, bunu yapmamak için herhangi bir neden var mı? Bunlardan herhangi biri / dev / null öğesinin altında yatan uygulama için "daha güzel" midir?
Düzenleme: open (2) manpage diyor lseek modu ekleme bir dosyaya her yazma önce denir:
O_APPEND
Dosya ekleme modunda açılır. Her yazma işleminden önce (2), dosya ofseti, lseek (2) ile olduğu gibi, dosyanın sonuna konumlandırılır. Dosya ofsetinin değiştirilmesi ve yazma işlemi tek bir atomik adım olarak gerçekleştirilir.
bu da kullanmak için küçük bir performans cezası olabileceğini düşündürüyor >>
. Ancak diğer yandan, / dev / null kısaltması bu belgeye göre tanımlanmamış bir işlem gibi görünüyor:
O_TRUNC
Dosya zaten varsa ve normal bir dosyaysa ve erişim modu yazmaya izin veriyorsa (yani, O_RDWR veya O_WRONLY ise) 0 uzunluğuna kısaltılır. Dosya bir FIFO veya terminal aygıt dosyasıysa, O_TRUNC bayrağı yoksayılır. Aksi takdirde, O_TRUNC'nin etkisi belirtilmez.
ve POSIX spesifikasyonu >
mevcut bir dosyayı kısaltacağını söylüyor , ancak O_TRUNC cihaz dosyaları için uygulama tanımlı ve / dev / null öğesinin kısaltılmaya nasıl yanıt vermesi gerektiği hakkında bir kelime yok .
Peki, truncating / dev / null belirtilmemiş mi? Ve lseek çağrılarının yazma performansı üzerinde herhangi bir etkisi var mı?