Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Ejemplos comando find para buscar en Linux


El comando find es uno de los más importantes en el mundo *nix. En Linux se puede usar para localizar todo aquello que necesitas, como directorios y ficheros. Además, es extremadamente poderoso y flexible, ya que admite argumentos y opciones para crear prácticos filtros (fecha, tamaño, tipo, nombre, extensión,…). Incluso puede ser una práctica herramienta para auditar la seguridad de la distro, ya que también podrá localizar ficheros o directorios con permisos inapropiados.




Sin embargo, debido a esa versatilidad y cantidad de opciones, no es de los comandos que más fáciles son de recordar, y muchos usuarios siguen teniendo ciertos problemas. Por eso, aquí verás algunos ejemplos prácticos de los más prácticos para que aprendas a defenderte con find:

Una visión general del comando find de Linux

Para utilizar el comando find en Linux, tendrás que abrir la línea de comandos. Veamos la estructura general del comando find de Linux:

 find <directory_path> <search_parameter>

 

Resumen de los parámetros de búsqueda más utilizados:

Parámetro de búsqueda

Explicación

-name, -iname

Filtrar por nombre de archivo

-type

Filtrar por tipo de archivo

-size, -empty

Filtrar por tamaño de archivo

-ctime, -mtime, -atime

Filtrar por marca de tiempo

-user, -group

Filtrar por propietario y grupo

-perm

Filtrar por derechos de archivo


También se pueden combinar varios parámetros de búsqueda. Aquí se asume implícitamente una operación lógica AND. Esto puede escribirse explícitamente. Además, se puede utilizar un enlace OR o negar una condición:

Parámetro de búsqueda

Explicación

-and

Los resultados de la búsqueda deben cumplir ambas condiciones

-or

Los resultados de la búsqueda deben cumplir al menos una de las dos condiciones

-not

Negar la condición posterior

 

Limitar la búsqueda a un directorio específico


Veamos cómo podemos limitar la búsqueda a un directorio específico. Para buscar en el directorio actual, utilizamos el elemento “.” como ruta del directorio:

find . <search_parameter>


Para buscar en tu propia carpeta de usuario, utiliza la tilde “~” como ruta del directorio:

find ~ <search_parameter>


También puedes buscar en todo el sistema con el comando find de Linux. Sin embargo, debido al gran número de archivos y a la posible jerarquía profunda de directorios, esto puede llevar mucho tiempo. Para buscar en todo el sistema, utilizamos una barra diagonal “/” como ruta de acceso al directorio:

find / <search_parameter>

Personalizar la salida de los resultados de la búsqueda



Para obtener los resultados página por página, pasamos la salida del comando find al comando less:

find <directory_path> <search_parameter> | less


Para contar el número de resultados, pasamos la salida del comando find al comando wc con el parámetro “-l”:

find <directory_path> <search_parameter> | wc -l


Para ver solo los primeros o los últimos n resultados de la búsqueda, pasamos la salida del comando find a los comandos “head” y “tail”. En cada caso, especificamos el parámetro “-n” seguido del número deseado de resultados de la búsqueda:

find <directory_path> <search_parameter> | head -n <amount>

find < directory_path> <search_parameter> | tail -n <amount>

 

Ejemplos

Buscar por Nombre

  • Buscar un archivo o directorio por su nombre (en el directorio actual, en todos los directorios, y con sensibilidad para distinguir entre minúsculas y mayúsculas):

find . -name "ejemplo.txt"

find / -name "ejemplo.txt"

find . -iname "ejemplo.txt"

  • Buscar un archivo o directorio por su nombre dentro de un directorio concreto:


find /home/usuario/prueba -name "ejemplo.txt"

  • Buscar todos los directorios (puedes usar l para enlaces simbólicos, c para dispositivos de carácter, f para ficheros, y b para dispositivos de bloque) y evitar archivos, o usar también el nombre:

Tipo de archivo

Explicación

f

Archivo

d

Directorio

l

Enlace

find /home/usuario/prueba -type d
find /home/usuario/prueba -type d -name "ejemplo"

  • Buscar archivos con una extensión particular:


find . -type f -name "*.txt"

  • Buscar archivos por su nombre y eliminarlo:

find . -name "ejemplo.txt" -delete

 

Buscar archivos por fecha

  • Buscar todos los archivos accedidos más viejos de 10 años, o también puedes hacerlo por fecha de modificación en los últimos 60 min y por fecha de cambios en menos de 1 día:

find / -atime 10
find / -mmin -60
find / -ctime -1

Parámetro de búsqueda

Explicación

-ctime, -cmin

Filtrar por fecha de creación

-mtime, -mmin

Filtrar por fecha de modificación

-atime, -amin

Filtrar por fecha de acceso

 

 Para encontrar los archivos que se modificaron hace apenas un día, utilizamos el parámetro de búsqueda “-mtime” seguido del valor “1”

 find . -type f -mtime 1

 

Buscar archivos por tamaño

 

Las especificaciones de tamaño consisten en un número seguido de una unidad. A continuación, presentamos un resumen de las unidades disponibles:

Unidades

Explicación

c

Bytes

k

Kilobytes

M

Megabytes

G

Gigabytes

b

512-byte bloques


  • Buscar los archivos que sean mayores de 500MB y menores de 1GB:

find / -size +500M -size -1G

 

Modificador

Explicación

+

El archivo es mayor que el tamaño indicado

-

El archivo es más pequeño que el tamaño indicado


  • Buscar los archivos que superan los 10GB y eliminarlos de una sola vez:


find / -size +10G -exec rm -rfv {} \;

 


Buscar archivos por usuario

  • Buscar los archivos que pertenezcan a un usuario o a un grupo:

find / -user nombre
find / -group nombre

  • Buscar los archivos que tengan unos permisos concretos:

find / -perm 644

Parámetro de búsqueda

Explicación

-user

Filtrar por propietario

-group

Filtrar por grupo

-perm

Filtrar por derechos de acceso


  • Buscar los archivos vacíos (si cambias f por d puedes buscar directorios vacíos):


find / -type f -empty

  • Buscar los archivos ocultos (d en vez de f para directorios ocultos):


find / -type f -name ".*"

  • Buscar texto dentro de ficheros:


find / -type f -name "*.txt" -exec grep 'texto-a-buscar' {} \;

 

 
Fuentes:

1 comentarios :

RFigueres dijo...

Apuntado el post!! Aquí algunos ejemplos mas de uso del comando find en español: https://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.