La page de manuel de grep
décrit le -I
drapeau comme suit:
-I Ignore binary files. This option is equivalent to
--binary-file=without-match option.
Il dit également ceci sur les fichiers binaires:
--binary-files=value Controls searching and printing of binary files.
Options are binary, the default: search binary files but do not print
them; without-match: do not search binary files; and text: treat all
files as text.
Je ne peux pas penser à un scénario où je me soucierais des correspondances dans les fichiers binaires. Si un tel scénario existe, il doit sûrement être l'exception plutôt que la norme. Pourquoi grep
n'ignore-t-il pas les fichiers binaires par défaut plutôt que d'exiger la définition de cet indicateur pour le faire?
Tout ce que grep pense n'est pas un fichier binaire, n'est pas en fait un fichier binaire. par exemple. les journaux de marionnettes ont un code couleur ansi, ce qui fait croire à grep qu'ils sont binaires. Je voudrais quand même les rechercher si je suis en train de parcourir/var/log.
La capacité de grep
à rechercher des fichiers binaires est également utile lorsque je compile un programme et que l'éditeur de liens (ld
) se plaint qu'une fonction n'est pas trouvée. Je peux utiliser une commande comme
grep nom_fonction / lib/lib *
pour trouver la bibliothèque qui le contient. (Les bibliothèques sont des fichiers binaires.)