¿Cómo puedo ejecutar "tail -f" en todos los archivos de registro del directorio actual, excepto uno?

¿Cómo puedo ejecutar "tail -f" en todos los archivos de registro del directorio actual, excepto uno?

Como parte de mis tareas diarias de desarrollo (en una Mac con OS 10.12.3), ejecuto tail -f *en mi carpeta de registro desde Terminal. La carpeta contiene alrededor de 15 archivos diferentes. ¿Cómo puedo modificar este comando para monitorear los cambios entodos los archivos menos unode *? Supongamos que el único archivo que me gustaría excluir *se llama Repetitive.log.

Disculpas por la pregunta muy básica, la busqué y no vi un duplicado. Publicado desdehttps://stackoverflow.com/questions/42815599/exclude-files-from-the-catchall-symbol

Respuesta1

Si está utilizando bashcomo shell, establezca la variable de entorno GLOBIGNOREen una lista de patrones separados por dos puntos que deseanocoincide cuando el caparazón está globulando,p.ej

$ export GLOBIGNORE=Repetitive.log
$ export GLOBIGNORE=somefile:anotherfile:abc*

De man bash:

   GLOBIGNORE
          A colon-separated list of  patterns  defining  the  set  of
          filenames  to be ignored by pathname expansion.  If a file-
          name matched by a pathname expansion pattern  also  matches
          one  of  the patterns in GLOBIGNORE, it is removed from the
          list of matches.

Respuesta2

xargs¡es tu amigo! Si no, findtambién puede ayudar.

Aquí hay cuatro enfoques, usando xargso find ... -execcoincidencia de patrones extendida:

Usar xargsvía lsygrep

ls | grep -v Repetitive.log | xargs tail -f

Usar xargsa través defind

find . -maxdepth 1 ! -name Repetitive.log | xargs tail -f

Usar findcon -execargumento

find . -maxdepth 1 ! -name Repetitive.log -exec tail -f {} \;

Utilice la coincidencia de patrones extendida enbash

Gran respuesta, tomada dehttps://stackoverflow.com/a/19429723/1862762.

shopt -s extglob
tail -f /directory/of/logfiles/!(Repetitive.log)

Nota

Para esta tarea, preferiría esta xargsforma, ya que proporciona resultados tailetiquetados con los nombres de archivos respectivos. Usar lsy grepparece más intuitivo y fácil de recordar.

información relacionada