Je cherche le fichier "WSFY321.c" dans une énorme hiérarchie de répertoires.
J'utilise habituellement GNU find : find . -name "WSFY321.c"
Mais je ne connais pas le cas, cela pourrait être en majuscule, minuscule ou un mélange des deux.
Quel est le moyen le plus simple de trouver ce fichier?
Y a-t-il quelque chose de mieux que find . | grep -i "WSFY321.c"
?
-type f
indicateur afin que le nom ne soit pas pris en compte si l'inode est un répertoire. Mais ce sont des niveaux d'optimisation pédants ...find . -iname \*WSFY321.c\* -type f
Avec GNU find ou d’autres versions de find qui l’ont:
Avec d'autres versions:
Ou un compromis plus lent mais plus facile à taper:
Ou en zsh:
la source
grep
version ne filtre que les majuscules et je ne comprends pas le '[^ /]' .. (not /)*
après la/
version bash. Je voulais diregrep -i
. J'utilise[^/]*
plutôt que.*
pour ne pas attraper les fichiers dans des répertoires dont le nom commence parWSFY
.shopt -s extglob nocaseglob globstar; printf '%s\n' **/WSFY321.c
... Je suppose que ce pourquoi il est appelé nocase glob : il ne fonctionne que dans le cadre d'un glob (ou paraît - il).Deux solutions pour macOS:
Utiliser GNU
find
:Utiliser GNU
sed
:la source