13Jul

Con find y grep podemos obtener un listado de todos los archivos que contengan el argumento en el nombre de archivo.

Si necesitamos buscar un archivo en un directorio específico, podemos usar la función find de Linux para recorrer todos los directorios de forma recursiva y con un pipe sobre grep filtrar los que tengan en su nombre de archivo la palabra argumento en el comando grep.

El siguiente ejemplo, ejecuta el comando find . -print |grep -i autocommand para encontrar todos los archivos que contengan la palabra autocommand.

urodoz@archdesk:~/vimrc|master ⇒ find . -print |grep -i autocommand
./config/autocommands_python.vimrc
./config/autocommands_bash.vimrc
./config/autocommands_css.vimrc
./config/autocommands_javascript.vimrc
./config/autocommands_html.vimrc
./config/autocommands_regexfix.vimrc
./config/autocommands.vimrc
./config/autocommands_php.vimrc

Como función dentro de nuestro Bash

Podemos añadir el comando como función dentro de nuestro archivo local ~/.bashrc para poder acceder de forma rápida a la ejecución con: ff.

# ... bash contents
function ff() {
  find . -print |grep -i "$@"
}
# ... bash contents

Una vez añadida la función a nuestro terminal, podremos realizar la búsqueda anterior tan sólo con:

urodoz@archdesk:~/vimrc|master ⇒ ff autocommand
./config/autocommands_python.vimrc
./config/autocommands_bash.vimrc
./config/autocommands_css.vimrc
./config/autocommands_javascript.vimrc
./config/autocommands_html.vimrc
./config/autocommands_regexfix.vimrc
./config/autocommands.vimrc
./config/autocommands_php.vimrc

Encuentra cualquier cosa con find: Artículo más detallado sobre diferentes opciones en el comando find

Gist: Gist con el contenido del comando definido como función Bash

Leave a comment