Wie kann ich „tail -f“ für alle Protokolldateien im aktuellen Verzeichnis ausführen – bis auf eine?

Wie kann ich „tail -f“ für alle Protokolldateien im aktuellen Verzeichnis ausführen – bis auf eine?

Als Teil meiner täglichen Entwicklungsaufgaben (auf einem Mac mit OS 10.12.3) führe ich tail -f *in meinem Protokollordner vom Terminal aus. Der Ordner enthält etwa 15 verschiedene Dateien. Wie kann ich diesen Befehl ändern, um Änderungen analle Dateien bis auf einevon *? Angenommen, die einzige Datei, die ich ausschließen möchte, *heißt Repetitive.log.

Entschuldigen Sie die sehr einfache Frage, ich habe danach gesucht und kein Duplikat gefunden. Erneut gepostet vonhttps://stackoverflow.com/questions/42815599/exclude-files-from-the-catchall-symbol

Antwort1

Wenn Sie als Shell verwenden bash, setzen Sie die Umgebungsvariable GLOBIGNOREauf eine durch Doppelpunkte getrennte Liste von Mustern, die SienichtÜbereinstimmung, wenn die Shell globbing durchführt,z.B

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

Aus 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.

Antwort2

xargsist dein Freund! Wenn nicht, findkann auch helfen.

Hier sind vier Ansätze, die xargs, find ... -execoder erweitertes Mustervergleich verwenden:

Nutzung xargsüber lsundgrep

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

Nutzung xargsüberfind

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

findMit -execArgument verwenden

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

Verwenden Sie den erweiterten Musterabgleich inbash

Tolle Antwort, entnommen aushttps://stackoverflow.com/a/19429723/1862762.

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

Notiz

Für diese Aufgabe würde ich die Methode bevorzugen xargs, da sie eine Ausgabe von tailmit den entsprechenden Dateinamen markiert liefert. Die Verwendung von lsund grepscheint intuitiver und leichter zu merken.

verwandte Informationen