jueves, 16 de enero de 2014

Buscar y localizar archivos

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 20cbusca archivos que ocupen 20 bytes a partir del directorio actual. 
find . -size 5bbusca archivos que ocupen 5 bloques de 521 bytes cada uno a partir del directorio actual.
find / -empybusca archivos vacíos a partir del directorio raíz.
find /home/user1 -name \*.binbusca 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".



No hay comentarios:

Publicar un comentario