Existe alguma alternativa disponível para find
semelhante a ag
e ack
?
Estou realmente cansado de ter que digitar:
find some/app -iname "some_file*"
Prefiro apenas digitar:
find "some_file*"
E faça com que ele procure a pasta atual e recursivamente em todas as subpastas.
Responder1
É para isso que servem as funções ou scripts. por exemplo
myfind() {
search="$1"
shift
find . -iname "$search" "$@"
}
O "$@"
final permite que você ainda especifique outras opções de localização, se desejar. Observe, entretanto, que find
é bastante exigente quanto à ordem de algumas opções; algumas opções só funcionam se vierem antes do caminho ( .
neste caso).
Alguns motivos find
para reclamar sobre eles estarem atrás de uma discussão de não opção.
por exemplo, find . -iname "*.txt" -maxdepth 1
causa o seguinte gemido:
find: aviso: você especificou a opção -maxprofundidade após um argumento sem opção -iname, mas as opções não são posicionais (-maxprofundidade afeta os testes especificados antes dele, bem como aqueles especificados depois dele). Especifique as opções antes de outros argumentos.
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 myfind.txt
. Em seguida, forneça-o com:
. myfind.txt
.
Se você deseja que ela seja definida em cada login, adicione a definição da função ao seu ~/.profile
or ~/.bash_profile
, ou fonte myfind.txt
deles.
Isso pressupõe que você esteja usando um shell Bourne como sh
ou bash
. Observe que algumas versões de sh
podem exigir a palavra-chave function
antes myfind
- por exemplo function myfind() { ... }
, . Se você estiver usando csh
or tcsh
, então... bem... não, mude para um Bourne Shell.