La mayoría de las respuestas aquí [ 1 ] [ 2 ] [ 3 ] usan un paréntesis angular único para redirigir a / dev / null, así:
command > /dev/null
Pero agregar a / dev / null también funciona:
command >> /dev/null
Excepto por el personaje extra, ¿hay alguna razón para no hacer esto? ¿Alguno de estos es "más agradable" para la implementación subyacente de / dev / null?
Editar:
El (2) abierta página de manual dice lseek se llama antes de cada escritura en un archivo en modalidad de apertura:
O_APPEND
El archivo se abre en modo anexar. Antes de cada escritura (2), el desplazamiento del archivo se coloca al final del archivo, como con lseek (2). La modificación del desplazamiento del archivo y la operación de escritura se realizan como un solo paso atómico.
lo que me hace pensar que podría haber una pequeña penalización de rendimiento por usar >>
. Pero, por otro lado, truncar / dev / null parece una operación indefinida de acuerdo con ese documento:
O_TRUNC
Si el archivo ya existe y es un archivo normal y el modo de acceso permite la escritura (es decir, es O_RDWR u O_WRONLY) se truncará a la longitud 0. Si el archivo es un FIFO o un archivo de dispositivo terminal, se ignora el indicador O_TRUNC. De lo contrario, el efecto de O_TRUNC no se especifica.
y la especificación POSIX dice >
que truncará un archivo existente , pero O_TRUNC está definido por la implementación para los archivos del dispositivo y no se sabe cómo / dev / null debería responder al truncamiento .
Entonces, ¿truncar / dev / null realmente no está especificado? ¿Y las llamadas de Iseek tienen algún impacto en el rendimiento de escritura?
fuente