Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.
El capítulo de hoy bien podría haber estado junto al de filtrado de archivos pero se hubiera hecho demasiado extenso y cansino, de modo que me ha parecido bien separarlo. Se trata de comandos para buscar y, por supuesto, encontrar archivos y directorios, el tipo de herramientas que siempre es bueno conocer y tener a mano.
find
Es el clásico comando de UNIX para encontrar archivos y directorios.
find -name lp: encuentra el fichero lp dentro del directorio actual.
find -iname lp: lo mismo pero sin tener en cuenta la diferencia entre mayúsculas y minúsculas.
find /home/vacaciones/ -name "*.jpg": encuentra todos los ficheros con extensión .jpg que hay en el directorio /home/vacaciones.
find /user -type f: encuentra todos los ficheros de tipo ordinario (parámetro "f") habidos dentro del directorio /user.
find / -user pedro: encuentra todos los archivos y directorios pertenecientes al usuario pedro.
find / -name cosas: encuentra el archivo cosas buscando a partir de la raíz del sistema.
find . -name "hola.txt": encuentra todos los archivos de nombre hola.txt buscando a partir del directorio actual.
find . -size 50k: busca archivos que ocupen 50k a partir del directorio actual.
find . -size 20c: busca archivos que ocupen 20 bytes a partir del directorio actual.
find . -size 5b: busca archivos que ocupen 5 bloques de 521 bytes cada uno a partir del directorio actual.
find / -empy: busca archivos vacíos a partir del directorio raíz.
find /home/user1 -name \*.bin: busca archivos con extensión .bin dentro del directorio /home/user1.
find /usr/bin -type f -mtime -10: encuentra archivos binarios creados o cambiados dentro de los últimos diez días.
find /usr/bin -type f -atime -100: encuentra archivos no usados dentro de los últimos diez días.Como ven las posibilidades son enormes (aún más si añadimos expresiones regulares o tuberías) y las variantes multitud. Acudan a las opciones de ayuda habituales y a internet para ampliar conocimientos.
locate
Comando similar a find que realiza sus búsquedas conforme a una base de datos indexada (localizada en el archivo /var/lib/mlocate.db) en lugar en relación al contenido del sistema. Su funcionamiento es en esencia igual.
locate -e archivo: busca solamente entradas de archivos existentes.
locate -i archivo: igual que la anterior pero ignorando la diferencia entre mayúsculas y minúsculas.
locate /home/*.txt: busca los archivos con extensión .txt en la ruta /home.whereis
Sirve para localizar un archivo binario (ejecutable), el código fuente y la página del manual de un comando.
whereis -b: busca solo el archivo binario.
whereis -m: busca solo la página del manual.
whereis -s: busca solo el código fuente.
whereis -b halt: muestra la ubicación del fichero binario correspondiente al comando halt.which
Encuentra donde se está ubicado un archivo binario siempre que su ruta esté incluida en la variable PATH.
Y buscando algo con que ilustrar el comando find he encontrado este tema de Clannad llamado "I will find you" que aparecía en la banda sonora de "El último mohicano".