Alternativa de taquigrafia para encontrar

0

Existe alguma alternativa disponível para find semelhante a ag e ack ?

Estou muito cansado de digitar:

find some/app -iname "some_file*"

Eu prefiro apenas digitar:

find "some_file*"

E procure pela pasta atual e recursivamente em todas as subpastas.

    
por dan-klasson 05.11.2015 / 08:42

1 resposta

2

É para isso que servem funções ou scripts. por exemplo.

myfind() {
    search="$1"
    shift
    find . -iname "$search" "$@"
}

O "$@" no final permite que você ainda especifique outras opções de busca, se desejar. Note, no entanto, que find é bastante exigente quanto à ordem de algumas opções, algumas opções só funcionam se vierem antes do caminho ( . neste caso).

Alguns causam find a reclamar sobre eles depois de um argumento não-opcional.

por exemplo. find . -iname "*.txt" -maxdepth 1 causa a seguinte reclamação:

find: warning: you have specified the -maxdepth option after a non-option argument -iname, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

AFAIK, não há opção para desativar esses avisos ... ou, se houver, não é chamado --quiet ou --silent .

De qualquer forma, salve a função acima em um arquivo de texto, por exemplo %código%. Em seguida, digite-o com:

myfind.txt .

Se você quiser que ele seja definido em cada login, adicione a definição da função ao seu . myfind.txt ou ~/.profile , ou a origem ~/.bash_profile deles.

Isso pressupõe que você esteja usando um shell Bourne como myfind.txt ou sh . Observe que algumas versões de bash podem exigir a palavra-chave sh antes de function - por exemplo, %código%. Se você estiver usando myfind ou function myfind() { ... } , então ... bem ... não, mude para um shell Bourne.

    
por 05.11.2015 / 08:54

Tags