Comment suivre (à la "queue -f") un fichier binaire depuis le début?

10

Est-il possible de suivre un fichier binaire depuis le début, à la la tail -f?

Ceci est utile dans certains cas, par exemple si je scpcrée un fichier sur un serveur distant, et en même temps je veux le nourrir dans un autre processus (oui, je sais que je peux utiliser ssh+ catastuces).

Pour autant que je lis de la FM, tailest écrit en gardant à l'esprit les fichiers texte.

Existe-t-il un moyen simple de faire de telles opérations en utilisant des outils posix standard?

Marcus
la source
Où est-il dit que tailcela ne peut être utilisé qu'avec des fichiers texte?
rozcietrzewiacz
@rozcietrzewiacz Sur les unités plus anciennes, les utilitaires orientés texte tels que ceux tailqui ne prenaient pas toujours en charge les fichiers binaires: ils pouvaient s'étouffer sur des octets nuls ou omettre des octets parasites après la dernière nouvelle ligne dans les fichiers d'entrée. Les systèmes modernes font face.
Gilles 'SO- arrête d'être méchant'

Réponses:

12

tailfonctionne aussi bien avec des données binaires qu'avec du texte. Si vous souhaitez commencer au tout début du fichier, vous pouvez utiliser tail -c +1 -f.

rozcietrzewiacz
la source
Cela ne fonctionne-t-il pour personne? J'ai un fichier binaire qui a 16 occurrences d'une chaîne que je vois quand j'utilise cat bin_file | strings - -o | grep match_string, mais quand je le fais tail -c +1 -f bin_file | strings - -o | grep match_string, je n'ai rien après la 9ème correspondance. J'ai également noté que les numéros de ligne de -osont tous inférieurs de 1 par rapport à la sortie cat. Si je laisse la grep désactivée, j'obtiens les 16 matchs (mélangés avec tout le reste), donc je pensais que le problème était grep, mais j'ai essayé un perl one-liner et il s'arrête au même endroit ...
hepcat72