
В рамках моих ежедневных задач разработки (на Mac с ОС 10.12.3) я запускаю tail -f *
папку журнала из Терминала. Папка содержит около 15 различных файлов. Как мне изменить эту команду, чтобы отслеживать изменения ввсе файлы кроме одногоПредположим, что *
единственный файл, который я хотел бы исключить, *
называется Repetitive.log
.
Извините за очень простой вопрос, я поискал его и не увидел дубликата. Переопубликовано изhttps://stackoverflow.com/questions/42815599/exclude-files-from-the-catchall-symbol
решение1
Если вы используете bash
в качестве оболочки, установите переменную окружения GLOBIGNORE
на список шаблонов, разделенных двоеточиями, которые вы хотитенетсовпадение, когда оболочка подставляется,например
$ export GLOBIGNORE=Repetitive.log
$ export GLOBIGNORE=somefile:anotherfile:abc*
От 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.
решение2
xargs
твой друг! Если нет, find
тоже может помочь.
Вот четыре подхода, использующих xargs
расширенное find ... -exec
сопоставление с образцом:
Используйте xargs
через ls
иgrep
ls | grep -v Repetitive.log | xargs tail -f
Использовать xargs
черезfind
find . -maxdepth 1 ! -name Repetitive.log | xargs tail -f
Использовать find
с -exec
аргументом
find . -maxdepth 1 ! -name Repetitive.log -exec tail -f {} \;
Использовать расширенное сопоставление с образцом вbash
Отличный ответ, взятый изhttps://stackoverflow.com/a/19429723/1862762.
shopt -s extglob
tail -f /directory/of/logfiles/!(Repetitive.log)
Примечание
Для этой задачи я бы предпочел способ xargs
, так как он обеспечивает вывод из tail
помеченных соответствующими именами файлов. Использование ls
и grep
кажется более интуитивным и легким для запоминания.