FreeBSD 9: Tam bir dosya adı nasıl bulunur?


10

locateVerilen desenle tam eşleşmeyi bulmak için komutu kullanmaya çalışıyorum . Ancak tüm eşleşen dosyaları gösterir.

Örneğin: node adlı bir ikili dosya bulmak istiyorum

Ama bana bu kelimeyi içeren tüm eşleşmeleri veriyor:

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

Yanıtlar:


10

Eğer bakarsanız locate --help, şunları bulabilirsiniz:

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

Aşağıdakilere -rbir regexp deseni sağlamak için kullanabilirsiniz locate:

locate -r /node$

/Olmasını sağlar nodedosya adının başında olduğunu. $Olmasını sağlar nodedosya adının sonundadır. Bu size yalnızca tam dosya adıyla eşleşen dosyaları verecektir .

Eğer bir harf duyarsız arama yapmak istiyorsanız (maçları Node, NODE, nOdE, vb), ekleyin -i:

locate -i -r /node$

Locate regexp'yi desteklemiyorsa, grep'i kullanabilirsiniz (Iracicot tarafından belirtildiği gibi):

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

Alternatif olarak, -banahtarı yalnızca temel adla eşleştirmek için kullanabilirsiniz :locate -br node$
Sarke

6

Locate ile grep kullanabilirsiniz

server2# locate node | grep node$

$ İşareti grep'e dizenin sonuna bakmasını söyler.


1
Sonuç aynı. ... / usr / port / www / p5-WebService-Linode düğümü ile biten farklı eşleşmeler getirir. Sanırım / node $ olmalı?
Alex G

Evet bunu da deneyebilirsiniz (Ama / karakterinden kaçılıp kaçılmayacağından emin değilim). -B'yi bulmayı denediniz mi?
lracicot

0

locateTüm dizinlerle eşleşen kendi kürenizi ekleyerek örtülü küresini devre dışı bırakın :

locate */node

Man sayfasından:

Herhangi bir PATTERNglobbing karakteri içermiyorsa, konum, desenmiş gibi davranır*PATTERN*

Bu sözdizimi, kök de dahil olmak üzere her yerde tam bir dosya veya dizin adıyla eşleşir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.