Question Linux: utilisez find pour trouver des fichiers texte?


Y a-t-il un moyen de spécifier à find que je ne veux que des fichiers texte (et non des fichiers binaires)? Grep a une option pour exclure les fichiers binaires, alors j'ai pensé find a probablement une fonctionnalité similaire, mais je n'ai pas pu le trouver.


4
2017-07-15 09:43


origine




Réponses:


C'est parce que grep regarde le contenu du fichier.

find . -exec sh -c "file -b --mime-type {} | grep -q '^text/'" \; -print

6
2017-07-15 09:53



Dans Ubuntu c'est find . -exec sh -c "file -b --mime {} | grep -q '^text/'" \; -print - icc97


find peut trouver des fichiers par leurs métadonnées, mais pas vérifier le contenu. Cependant, vous pouvez le coupler avec file:

find .git -type f -exec file -iN0 {} + |
awk -F '\0' '$2 ~ /^: text\// {print $1}'

(Vous pouvez supprimer le | awk ... partie si vous voulez également des informations plus détaillées.)


4
2017-07-15 09:55