FreeBSD 9: Wie findet man einen genauen Dateinamen?

FreeBSD 9: Wie findet man einen genauen Dateinamen?

Versuch, mit locatedem Befehl eine genaue Entsprechung für das angegebene Muster zu finden. Es werden jedoch alle übereinstimmenden Dateien angezeigt.

Beispiel: Ich möchte eine Binärdatei mit dem Namen finden:Knoten

Aber es werden mir alle Übereinstimmungen angezeigt, die dieses Wort enthalten:

server2# locate node
/usr/share/man/man9/getnewvnode.9.gz
/usr/share/man/man9/ieee80211_amrr_node_init.9.gz
/usr/share/man/man9/ieee80211_dump_node.9.gz
/usr/share/man/man9/ieee80211_dump_nodes.9.gz
/usr/share/man/man9/ieee80211_find_rxnode.9.gz
/usr/share/man/man9/ieee80211_find_rxnode_withkey.9.gz
/usr/share/man/man9/ieee80211_free_node.9.gz

Antwort1

Wenn Sie sich ansehen locate --help, finden Sie möglicherweise:

  -r, --regexp REGEXP    search for basic regexp REGEXP instead of patterns
      --regex            patterns are extended regexps

Sie können -rein Regexp-Muster für Folgendes bereitstellen locate:

locate -r /node$

Die /Sicherung nodesteht am Anfang des Dateinamens. Die $Sicherung nodesteht am Ende des Dateinamens. Dadurch erhalten Sienurdie Dateien, die dem genauen Dateinamen entsprechen.

Wenn Sie bei der Suche die Groß-/Kleinschreibung nicht berücksichtigen möchten (entspricht Node, NODE, nOdE, usw.), fügen Sie Folgendes hinzu -i:

locate -i -r /node$

Wenn „locate“ keinen regulären Ausdruck unterstützt, können Sie „grep“ verwenden (wie von Iracicot erwähnt):

locate node | grep /node$
locate -i node | grep -i /node$

Antwort2

Sie können grep mit locate verwenden

server2# locate node | grep node$

Das $-Zeichen weist grep an, das Ende der Zeichenfolge zu betrachten.

Antwort3

Deaktivieren Sie locateden impliziten Glob von , indem Sie Ihren eigenen Glob hinzufügen, der mit allen Verzeichnissen übereinstimmt:

locate */node

Aus der Manpage:

Wenn any PATTERNkeine Globbing-Zeichen enthält, verhält sich locate so, als wäre das Muster*PATTERN*

Diese Syntax entspricht einem vollständigen Datei- oder Verzeichnisnamen überall, auch im Stammverzeichnis.

verwandte Informationen