He configurado rsyslogpara registrar ciertos eventos de registro en /dev/xconsole:
*.*;cron.!=info;mail.!=info |/dev/xconsole
/dev/xconsolees una tubería con nombre ( fifo). Si quiero ver lo que se está registrando, puedo hacerlo cat /dev/xconsole. Me sorprende ver que el comando cat /dev/xconsoleno termina después de leer el archivo, sino que actúa como tail -f. en otras palabras, los dos comandos se comportan igual:
cat /dev/xconsole
tail -f /dev/xconsole
¿Alguien puede explicar por qué es eso?
¿Hay alguna diferencia entre los dos?

world, y, he aquí, "mundo" aparece en la otra terminal.También hay una diferencia en el almacenamiento intermedio entre
catytail -f. Puedes ver esto:Crear tubería:
mkfifo pipeComience a leer la tubería usando
caten segundo plano:cat pipe &Abra la tubería y escríbala cada segundo:
perl -MFcntl -we 'sysopen(my $fh, "pipe", O_WRONLY | O_NONBLOCK); while() {warn "written: " . syswrite($fh, "hello\n"); sleep 1}'Ahora intente esto con en
tail -f pipe &lugar decat. Por lo tanto, puede ver quecatimprime líneas tan pronto como se escriben en la tubería mediante un script perl, mientras lastail -falmacena hasta 4kb antes de imprimirlas en stdout.fuente
catmuestra todo el archivo cuandotail -fMuestra solo las últimas filas y sigue. Entonces, si el archivo es corto, se comportan igual, pero si el archivo es grande (más de 100 filas) puede ver una clara diferencia entre ellos dos.Información adicional sobre esos comandos:
tailhttp://www.computerhope.com/unix/utail.htmcathttp://www.computerhope.com/unix/ucat.htmfuente