Existe uma ferramenta CLI semelhante a gnome-search-tool
? Estou usando locate
, mas prefiro que ele agrupe os resultados onde o nome do diretório é correspondido. Eu recebo muitos resultados onde o caminho é correspondido, o que não é o que eu quero:
/tmp/dir_match/xyz
/tmp/dir_match/xyz2/xyz3
Ele precisa ser rápido e, portanto, usar um índice de pesquisa.
fzf é um localizador difuso de linha de comando de uso geral.
e a página do github é https://github.com/junegunn/fzf
Os comandos padrão do Linux para isso são:
find
comando para procurar nomes de arquivos, por exemplo:procure por arquivos chamados xyz em
/tmp
procure diretórios cujo nome contenha 'xyz' em
/tmp
comandos find e grep para pesquisar no conteúdo do arquivo, por exemplo:
encontre arquivos nos
/tmp
quais contenham xyzlocate
é muito versátil pode receber -r e um padrão regexp, então você pode fazer muitas combinações sofisticadas. Por exemplo, para corresponder a diretóriosa
a0
a1
e assim por diante, use'/a[0-9]*/'
. Isso mostrará apenas diretórios com arquivos, pois você precisa do segundo/
no caminho. Para corresponder apenas ao diretório, use$
para ancorar o padrão no final do caminho,'/a[0-9]*$'
.Observe que existem pelo menos 2 versões do
locate
comando, uma do GNU e outra do Redhat (conhecida como mlocate). Use--version
para descobrir qual você tem. Eles diferem ligeiramente no estilo regex. Por exemplo, se alterarmos o padrão acima'/a[0-9]*$'
para usar+
em vez de*
evitar a correspondênciaa
por conta própria, mlocate needs\+
e gnu just+
.Por exemplo, para corresponder a um diretório
a
e tudo abaixo dele, você pode usar para ambas as versõesPara mlocate você pode prefex
--regex
que usa sintaxe estendidaPara fazer o mesmo para o gnu localizar, você precisaria adicionar a opção
--regextype egrep
, por exemplo.