FreeBSD 9: Як знайти точне ім'я файлу?


10

Намагаючись за допомогою locateкоманди знайти точну відповідність даному шаблону. Однак результати показують всі відповідні файли ..

Наприклад: Я хочу знайти двійкову назву: вузол

Але це дає мені всі збіги, що містять це слово:

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

Відповіді:


10

Якщо ви подивитесь locate --help, ви можете знайти:

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

Ви можете використовувати -rдля надання шаблону повторного виведення для locate:

locate -r /node$

У /Гарантує nodeзнаходиться на початку імені файлу. У $Гарантує nodeзнаходиться в кінці імені файлу. Це дасть вам лише ті файли, які відповідають точному імені файлу.

Якщо ви хочете зробити пошук без урахування регістру (сірники Node, NODE, nOdEі т.д.), додайте -i:

locate -i -r /node$

Якщо locate не підтримує regexp, ви можете використовувати grep (як згадував Iracicot):

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

Крім того, ви можете використовувати -bперемикач, щоб відповідати лише locate -br node$
базовій

6

Ви можете використовувати grep з locate

server2# locate node | grep node$

Знак $ підкаже grep подивитися в кінці рядка.


1
Результат однаковий. Він пропонує різні збіги, що закінчуються вузлом ... / usr / ports / www / p5-WebService-Linode. Я думаю, це має бути / node $?
Алекс Г

Так, ви можете також спробувати це (але я не впевнений, чи слід / символ уникнути чи ні). Ви спробували знайти -b?
lracicot

0

Вимкнути locateнеявний глобус, додавши власний глобус, який відповідає всім каталогам:

locate */node

На чоловіковій сторінці:

Якщо будь-який PATTERNне містить глобусних символів, знайдіть поведінку так, як ніби це було*PATTERN*

Цей синтаксис буде відповідати повній назві файлу чи каталогу в будь-якому місці, у тому числі в корені.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.