Come seguire (a la “tail -f”) un file binario dall'inizio?


10

È possibile seguire un file binario dall'inizio, alla tail -f?

Ciò è utile in alcuni casi, ad esempio se sto scpeseguendo il download di un file su un server remoto e allo stesso tempo voglio inviarlo a un altro processo (sì, lo so che posso usare ssh+ cattrucchi).

Per quanto ho letto dall'FM, tailè scritto pensando ai file di testo.

Esiste un modo semplice per eseguire tali operazioni utilizzando gli strumenti posix standard?


Dove dice che tailpuò essere utilizzato solo con file di testo?
rozcietrzewiacz,

@rozcietrzewiacz Sui vecchi unici, utility orientate al testo come tailnon sempre affrontavano i file binari: potrebbero soffocare su byte nulli o omettere byte vaganti dopo l'ultima nuova riga nei file di input. I sistemi moderni fanno fronte.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


12

tailfunziona con i dati binari e con il testo. Se si desidera iniziare dall'inizio del file, è possibile utilizzare tail -c +1 -f.


Non funziona per nessuno? Ho un file binario che ha 16 occorrenze di una stringa che vedo quando uso cat bin_file | strings - -o | grep match_string, ma quando lo faccio tail -c +1 -f bin_file | strings - -o | grep match_string, non ottengo nulla oltre la nona corrispondenza. Ho anche notato che i numeri di riga da -osono tutti 1 in meno rispetto all'output cat. Se lascio fuori il grep, ottengo tutte e 16 le partite (mescolate con tutto il resto), quindi ho pensato che il problema fosse grep, ma ho provato un perl one-liner e si ferma nello stesso posto ...
hepcat72,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.