Ich suche die Datei "WSFY321.c" in einer riesigen Verzeichnishierarchie.
Normalerweise würde ich GNU find verwenden : find . -name "WSFY321.c"
Aber ich kenne den Fall nicht, es könnte Großbuchstaben, Kleinbuchstaben oder eine Mischung aus beiden sein.
Was ist der einfachste Weg, um diese Datei zu finden?
Gibt es etwas besseres als find . | grep -i "WSFY321.c"
?
-type f
Flag entfernen, damit es nicht stört, nach dem Namen zu suchen, wenn es sich bei der Inode um ein Verzeichnis handelt. Aber das ist einfind . -iname \*WSFY321.c\* -type f
Mit GNU find oder anderen Versionen von find, die es haben:
Mit anderen Versionen:
Oder ein Kompromiss, der langsamer, aber einfacher zu tippen ist:
Oder in zsh:
quelle
grep
Version filtert nur Großbuchstaben, und ich verstehe das '[^ /]' nicht .. (not /)*
nach der/
in der Bash-Version. Ich meintegrep -i
. Ich benutze es[^/]*
lieber.*
, um keine Dateien in Verzeichnissen abzufangen, deren Name mit "" beginntWSFY
.shopt -s extglob nocaseglob globstar; printf '%s\n' **/WSFY321.c
... Ich nehme an, das ist , warum es eine genannt wird nocase glob : Es funktioniert nur in Zusammenhang mit einer glob (so scheint es).Zwei Lösungen für macOS:
GNU benutzen
find
:GNU benutzen
sed
:quelle