comandos linux: find con ejemplos 2

Hace algunos días escribí el post «Comandos linux: find con ejemplos» y me enfoqué en que cualquier persona nueva en esto de los comandos linux entendiera como funciona el comando find con algunos ejemplos sencillos, pero algunas de las personas que comentaron el post en Facebook y otras redes pidieron que se mostraran formas más avanzadas de utilizar el comando linux find y como sacarle utilidad con ejemplos mas poderosos. Aquí te digo como usar el comando find en linux para coas un poco mas avanzadas.

Ejemplos del comando linux find a nivel intermedio

Bueno ya vimos los ejemplos básicos del comando linux find, ahora  vamos a ver como podemos sacar más provecho de este comando que es realmente poderoso si sabes como usarlo.

Buscar archivos por Permisos y conjuntos de bits sgid/suid

El parámetro -perm te da la opción de buscar por archivos que cumplan ciertos permisos, ya sea que busques los archivos con permiso de ejecución, lectura (o sin el) o que tengan o no el permiso de escritura. Aquí los ejemplos:

find . -type f -perm 0664
 ./abc.txt
 ./pruena/test.php
 ./abc.php
 ./nuevo.php

Puedes buscar archivos con permisos incorrectos o que puedan ser un problema de seguridad para tu sistema linux. Recuerda que también puedes aplicar el caracter ! para indicar la negación de la búsqueda.

find . -type f ! -perm 0777
 ./abc.txt
 ./pruena/test.php
 ./abc.php
 ./nuevo.php

El parámetro -perm también te permite buscar archivos con permisos que tengan permisos especiales como el sgid

find / -perm 2644

O que tengan el sticky bit, en este ejemplo es importante hacer notar que «2>/dev/null»  no muestra los archivos que devuelven el error «Permiso Denegado».

find / -maxdepth 2 -perm /u=s 2>/dev/null
 /bin/mount
 /bin/su
 /bin/ping6
 /bin/fusermount
 /bin/ping
 /bin/umount
 /sbin/mount.ecryptfs_private

Para bucar archivos que tengan el permiso de lectura puedes indicarlos mediante  -perm /u=r como se muestra en el siguiente ejemplo:

find /etc -maxdepth 1 -perm /u=r
 /etc
 /etc/thunderbird
 /etc/brltty
 /etc/dkms
 /etc/phpmyadmin
 ....

También es posible encontrar los archivos que tienen el permiso de ejecución en una ruta específica, para este ejemplo podemos listar los achivos en /bin, es importante aclarar que los directorios aparecen en este listado ya que el permiso de ejecución en los directorios se interpreta como permiso de «acceso».

find /bin -maxdepth 2 -perm /a=x
 /bin
 /bin/preseed_command
 /bin/mount
 /bin/zfgrep
 /bin/tempfile
 ...

Buscar archivos por Usuarios y Grupos de Usuarios

Otra ventaja del comando find es que puedes localizar archivos que pertenezcan a cierto usuario o a cierto grupo, para hacer esto puedes utilizar el parámetro -user y el parámetro -group mira estos ejemplos para que sepas como funciona

Para encontrar todos los archivos del usuario «luis» dentro del directorio actual

find . -user luis
 .
 ./abc.txt
 ./abc
 ./prueba
 ./prueba/test.php
 ./index.php

Para encontrar los archivos que pertenezcan a un grupo, por ejemplo «web-data»

find /var/www -group web-data

Buscar archivos por el tiempo o fecha de modificación

Para buscar los archivos que han sido modificados en los últimos 50 días

find /home/usuario/ -mtime 50

Para buscar los archivos que han diso accesados en los últimos 7 días y utilizando el símbolo ~ para indicar el directorio «del usuario»

find ~ -atime 7

Para buscar los archivos modificados en un rango de tiempo, por ejemplo de hace 30 días hasta hace 60 días.

find / -mtime +30 -mtime -60

Para encontrar los archivos que han cambiado en los últimos 60 minutos

find /home/usuario -cmin -60

Para listar los archivos modificados en los últimos 60 minutos

find / -mmin -60

Para buscar los archivos que han sido accedidos en los últimos 60 minutos

find / -amin -60

Si te das cuenta el comando linux find es muy poderoso y aun no es todo pues hay forma de no solo encontrar archivos sino hacer algo con ellos y realizar tareas específicas pero esto lo veremos en los ejemplos avanzados.

Que otros ejemplos de find tienes para compartir, dejame tu comentario sobre el comando find.

Comandos Linux: find (primera parte)
Comandos Linux: find con ejemplos (segunda parte)
Comandos Linux: find con ejemplos (tercera parte)

Tu Servidor y Amigo

Luis Armando Medina
Sígueme en Twitter: @larmedina

facebook-arrow Haz click en «Me Gusta» y deja un comentario:

This entry was posted in Blog and tagged , , . Bookmark the permalink.

2 Responses to "comandos linux: find con ejemplos 2"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*