Geben Sie *
ein Platzhalter, um eine Übereinstimmung für alles anzuzeigen . Sie müssen auch *
maskieren s, z. B.:
find . -path \*content/docs/file.xml
oder schließen Sie das Muster in Anführungszeichen ein, z. B.:
find . -path "*content/docs/file.xml"
Wie die Manpage es beschreibt:
$finden. -name *.c -print
find:Pfade müssen dem Ausdruck vorangehen
Dies geschieht, weil *.c von der Shell erweitert wurde, was dazu führt, dass find tatsächlich eine Befehlszeile wie diese erhält:
finden . -name bigram.c code.c frcode.c locate.c -print
Dieser Befehl wird natürlich nicht funktionieren. Anstatt dies auf diese Weise zu tun, sollten Sie das Muster in Anführungszeichen setzen oder den Platzhalter maskieren:
$finden. -name \*.c -print
find hat einen -path
(oder das äquivalente, aber weniger portable -wholename
) Option zu find $top_dir -wholename *string*
find /usr -path *in/abiw*
>/usr/bin/abiword
find . -type f | grep "content/docs/file.xml"
oder einfach nur
locate content/docs/file.xml