Alternativa abreviada para encontrar

Alternativa abreviada para encontrar

Existe alguma alternativa disponível para findsemelhante a age 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 findpara reclamar sobre eles estarem atrás de uma discussão de não opção.

por exemplo, find . -iname "*.txt" -maxdepth 1causa 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 --quietou --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 ~/.profileor ~/.bash_profile, ou fonte myfind.txtdeles.

Isso pressupõe que você esteja usando um shell Bourne como shou bash. Observe que algumas versões de shpodem exigir a palavra-chave functionantes myfind- por exemplo function myfind() { ... }, . Se você estiver usando cshor tcsh, então... bem... não, mude para um Bourne Shell.

informação relacionada