¿Existe alguna alternativa find
similar a ag
y ack
?
Estoy realmente cansado de tener que escribir:
find some/app -iname "some_file*"
Prefiero simplemente escribir:
find "some_file*"
Y haga que busque la carpeta actual y de forma recursiva en todas las subcarpetas.
Respuesta1
Para eso están las funciones o scripts. p.ej
myfind() {
search="$1"
shift
find . -iname "$search" "$@"
}
El "$@"
final le permite seguir especificando otras opciones de búsqueda si lo desea. Tenga en cuenta, sin embargo, que find
es bastante exigente con el orden de algunas opciones, algunas opciones sólo funcionan si van antes de la ruta ( .
en este caso).
Algunos se find
quejan de que están detrás de un argumento que no es una opción.
por ejemplo, find . -iname "*.txt" -maxdepth 1
provoca el siguiente gemido:
buscar: advertencia: ha especificado la opción -maxprofundidad después de un argumento que no es una opción -iname, pero las opciones no son posicionales (-maxprofundidad afecta las pruebas especificadas antes y después). Especifique las opciones antes de otros argumentos.
AFAIK, no hay ninguna opción para desactivar estas advertencias... o si la hay, no se llama --quiet
o --silent
.
De todos modos, guarde la función anterior en un archivo de texto, por ejemplo myfind.txt
. Luego consíguelo con:
. myfind.txt
.
Si desea que se defina en cada inicio de sesión, agregue la definición de función a su ~/.profile
o ~/.bash_profile
, o fuente myfind.txt
de ellos.
Esto supone que estás usando un shell Bourne como sh
o bash
. Tenga en cuenta que algunas versiones de sh
pueden requerir la palabra clave function
antes myfind
, por ejemplo function myfind() { ... }
. Si estás usando csh
or tcsh
, entonces... bueno... no lo hagas, cambia a un shell Bourne.