Як слід (a la “tail -f”) двійковий файл з самого початку?


10

Чи можна слідкувати за двійковим файлом спочатку, а-ля tail -f?

Це корисно в деяких випадках, наприклад, якщо я scpпередаю файл на віддалений сервер, і в той же час я хочу передати його іншому процесу (так, я знаю, що можу використовувати ssh+ catтрюки).

Наскільки я читаю з FM, tailпишеться, маючи на увазі текстові файли.

Чи є простий спосіб виконання таких операцій, використовуючи стандартні інструменти posix?


Де сказано, що tailможна використовувати лише текстові файли?
rozcietrzewiacz

@rozcietrzewiacz У старих програмах утиліти, орієнтовані на текст, такі як tailне завжди справлялися з бінарними файлами: вони можуть задихатися в нульових байтах або опускати байдарки після останнього нового рядка у вхідних файлах. Сучасні системи справляються.
Жил "ТАК - перестань бути злим"

Відповіді:


12

tailпрацює з бінарними даними так само, як і з текстом. Якщо ви хочете почати з самого початку файлу, ви можете використовувати tail -c +1 -f.


Це ні для кого не працює? У мене є двійковий файл, який містить 16 вхідних рядків, які я бачу, коли використовую cat bin_file | strings - -o | grep match_string, але коли це роблю tail -c +1 -f bin_file | strings - -o | grep match_string, я нічого не отримую за 9-й збіг. Я також зазначив, що номери рядків від на -oвсі на 1 менше порівняно з кішковими показниками. Якщо я залишу греп, я отримую всі 16 матчів (змішані з усім іншим), тому я подумав, що проблема є греп, але я спробував
перламутровий однолінійний,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.