Рейтинг:2

Флаг повторной попытки команды tail не работает с подстановочными знаками?

флаг tr

Я хочу отследить кучу неизвестных имен каталогов, содержащих конкретный несуществующий файл, например:

хвост -F /tmp/*/app.log

Однако это не работает с подстановочным знаком: если я создаю файл с этим путем, хвост не начнет следовать, пока я не перезапущу команду. С другой стороны, если я запускаю:

хвост -F /tmp/example/app.log

как только файл появится, команда выведет: хвост: появился '/tmp/example/app.log'; следующий новый файл

я пробовал -f имя файла --повторить попытку комбинация вместо и результат тот же.

Как это можно решить и есть ли другие способы достичь той же цели?

djdomi avatar
флаг za
Отвечает ли это на ваш вопрос? [Постоянно отслеживать журналы с хвостовой частью, которые время от времени ротируются]
iomv avatar
флаг tr
@djdomi Нет, этот вопрос объясняет, как использовать флаг `-F`, который на самом деле я подчеркиваю в своем вопросе, что я знаю его использование, но я считаю, что он не работает должным образом с подстановочными знаками
Рейтинг:4
флаг it

/tmp/*/app.log будет расширен оболочкой (полагаю, BASH). Если существуют совпадения, то это будет расширено до этих совпадений, а затем передано в качестве аргументов в хвост

$ найти /tmp/test -тип f
/tmp/test/a/app.log                                                                                                                                                                                                                                
/tmp/test/b/app.log                  

$ эхо /tmp/test/*/app.log                                                                                                                                                                                        
/tmp/test/a/app.log /tmp/test/b/app.log

Итак, в приведенном выше случае хвост будет настроен на конкретное следование app.log в а и app.log в б. Если в то время, когда оно было начато, app.log в б не существовало, оно не было бы соблюдено. Если создаются новые каталоги или файлы, он также не будет следовать за ними.

В случае отсутствия совпадений нерасширенная строка будет передана в качестве аргумента хвост

$ эхо /tmp/test/*/app2.log                                                                                                                                                                                     
/tmp/тест/*/app2.log               

Таким образом, он попытается следовать буквальному пути/имени файла. /tmp/тест/*/app2.log, который, вероятно, никогда не будет существовать (а если и существует, то создан очень странным образом, потому что * в качестве имени каталога я бы не советовал делать это при нормальных обстоятельствах).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.