Una tarea normal para cualquier usuario de la línea de comandos de Linux, es tener que buscar dentro de directorios archivos con un nombre o que contenga cierto texto.
Son dos comandos que fácilmente recordaremos en cuando los usemos unas pocas veces, pero que resultan muy útiles:
Buscar archivos por nombre:
Para realizar esta búsqueda, tenemos que utilizar el comando “find”, y tenemos que poner la ruta en la que buscar, y luego el parámetro. En este ejemplo vamos a buscar dentro de /var/www los archivos que contentan en el nombre la extensión .css (el asterisco * es un comodín).
$ find /var/www -name '*.css'
Esto nos mostrara los resultados con la ruta de los archivos que cumplan los requisitos, por ejemplo, la salida podría ser algo asi:
/var/www/html/text-cursor.css
/var/www/html/style.css
Este es un uso básico, que si queremos algo más avanzado, podemos consultar el manual y ver todas las opciones que tenemos disponibles:
$ man find
Buscar archivos por el texto que contienen:
En esta ocasión utilizaremos el comando grep, es un comando con mucha utilidad, pero en esta ocasión veremos únicamente como buscar un texto dentro de archivos.
En este ejemplo, vamos a buscar la palabra “front” dentro de un un archivo:
$ grep Font /var/www/html/style.css
Esto nos mostrara todas las líneas que coincidan con lo que hayamos buscado. En este caso al ser un archivo css, podría mostrar un resultado como lo siguiente:
font-weight: bold;
font-family: monospace;
Veamos un ejemplo mas, ahora vamos a buscar dentro de un directorio, a si que ejecutamos el siguiente comando:
$ grep Font /var/www/html/
Pero si lo ejecutamos, obtendremos una respuesta como la siguiente:
Grep: /var/www/html/: Is a directory
Esto nos quiere decir que al ser un directorio, no puede buscar un contenido en el, a si que tenemos que indicarle que busque de forma recursiva para poder buscar dentro en todos los archivos que existan:
grep -R font /var/www/html/
Ahora si que nos mostrara un resultado en caso de que encuentre algo, nos indicara el nombre de archivo y donde lo ha encontrado, lo siguiente podría ser una salida:
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css: font-weight: bold;
/var/www/html/style.css: font-family: monospace;
Si no queremos que nos muestre la ruta del archivo, podemos usar la opción -h para omitir esa opción. Si queremos mas información sobre el comando “grep” podemos obtenerla con “man”:
$ man grep
Me metí en la aventura de Drupal con la versión 6, y aquí estoy, 10 años después, escribiendo articulos y haciendo videos sobre Drupal, quien me lo iba a decir. Aunque he probado otros framworks y cms, me quedo con Drupal de lejos, pero Symfony y Django estan entre mis favoritos. Aficionado a la montaña, la bicicleta, y el comer, de eso que no falte.