Есть ли эквивалент хвоста -f в Windows?

Много раз я нахожусь в ситуации, когда нужно следить за эволюцией файла журнала в Windows. Есть ли эквивалент Linux

tail -f <filename>

на терминале Windows, желательно без установки внешнего программного обеспечения? Другие сообщения SO говорят об установке сторонних программ.

Ответ 1

В Powershell вы можете использовать Get-Content с флагом -Wait:

Get-Content filename.log -Wait

Вы можете сократить Get-Content до gc. На этот вопрос, предложенный в качестве возможного дубликата, есть ответ, в котором упоминается этот и некоторые полезные дополнительные параметры -  смотрите fooobar.com/questions/24473/.... Я не уверен, действительно ли это дубликат, поскольку этот вопрос говорит об общих альтернативах Windows для Linux tail, а не о tail -f.

Ответ 2

Да. Вы можете использовать tail на окнах, что является небольшой ценой, чтобы получить доступ ко многим инструментам GNU на окнах, а также tail. Поскольку его комплект с git for windows, он довольно сильно протестирован и стабилен.

Сначала установите git-bash из https://gitforwindows.org/

Затем поместите git-bash в путь Windows и перезагрузите рабочую станцию:

setx path "%path%;C:\Program Files\Git\bin\"

Теперь вы сможете использовать tail -n 20 -F logging_file.log для хвоста любого файла и показывать последние 20 строк.

Если вы работаете в Linux/Unix и хотите постоянно просматривать журналы, вы можете использовать следующую команду: ssh [email protected] 'bash -c "tail -n 20 -F /c/Users/username/Desktop/logging_file.log"'

Ответ 3

В Powershell используйте:

cat .\<file_name> -Tail 10 -Wait

Ответ 4

Я знаю, что вы сказали без внешней программы. Но для людей, которые уже установили подсистему Windows для Linux (WSL) и не могут заставить tail работать должным образом в Ubuntu 16.04 LTS, я нашел эту ветку, где кто-то нашел обходной путь :

В случае, если кто-то обнаружит это через Google, кажется, что поддержка inotify в WSL ограничена доступом к файлу WSL, а не доступом к файлу win32, поэтому вы должны сказать tail не использовать его:

tail -f /mnt/c/path/to/file ---disable-inotify

(yes, three dashes)