El post que buscas se encuentra eliminado, pero este también te puede interesar

Cómo encontrar cualquier cosa bajo Linux

El Linux find , grep y awk comandos son herramientas increíble poder de las búsquedas de archivos de grano fino, y para encontrar las cosas dentro de los archivos. Con ellos se puede encontrar los archivos más grande y nuevo en el sistema, ajustar los parámetros de búsqueda, búsqueda de texto dentro de archivos, y realizar algunos trucos de usuario mancha de gestión.

Buscar archivos más grande o más reciente


El find comandos puede hacer casi cualquier cosa, si usted puede encontrar la manera. En este ejemplo se persigue a los cerdos por espacio de búsqueda de los 10 archivos más grandes en el sistema, y ​​los ordena de menor a mayor, en forma legible:

# Find /-type f-exec du {} ; 2> / dev / null | sort-n | tail-n 10 | xargs-n 1 du-h 2> / dev / null
1.2G / home / carla / .local / share / Trash / files / descarga
1.3G
2,2 g / home / carla / .local / share / Trash / files / dreamstudio.iso
[...]

Estos resultados me recuerdan por qué no les gusta tener un contenedor de basura, porque cuando se borra algo de lo que significa, por cracky. Este comando es una búsqueda de fuerza bruta del sistema de ficheros y puede tomar unos minutos para ejecutar, a fin de utilizarlo como una excusa para ir a tomar una rápida caminata fuera saludable. Por supuesto, usted puede modificar el comando para buscar cualquier directorios que desee, por ejemplo, utilizar find /var/ para cazar a los archivos de registro son obesos.


Vamos a examinar el mandato. find / -type f significa "buscar todos los archivos en el sistema de archivos raíz entera." -exec opción es para la incorporación de otros comandos, en este caso, du , el comando uso del disco. -exec du {} ; medios "ejecutar el comando du en cada archivo para obtener su tamaño en bytes." 2>/dev/null envía todos los mensajes de error a la bitbucket, para que no irrumpan desordenadamente en los resultados. Puede suprimir 2>/dev/null ocurrencias y vuelva a ejecutar el comando, si eres curioso acerca de lo que te pierdes. sort -n pone todos los archivos por orden de tamaño, y tail -n 10 muestra los últimos 10, que gracias a la suerte son los más grandes. Usted puede dejar allí, y después de su salida sería así:

1206316 / home / carla / .local / share / Trash / files / descarga
2209784 / home / carla / .local / share / Trash / files / dreamstudio.iso


xargs -n 1 du -h añade el refinamiento final, convertir el tamaño de los archivos de bytes en un formato fácil de leer.

Usted puede encontrar fácilmente todos los archivos del sistema que se han cambiado en los últimos cinco minutos:

# Find /-mmin -5 de tipo f

Este comando busca todos los archivos modificados entre 10 y 20 minutos:

# Find /-10-mmin mmin -20 de tipo f



10 significa que más de 10 minutos, y -20 significa menos de 20. Si usted no utiliza un más o menos, significa que el número con exactitud. Use -mtime buscar por 24 horas al día. Si usted quiere encontrar directorios, uso -type d .

Búsqueda de directorios múltiples

Puede crear una lista de múltiples directorios arbitrarios en los que buscar de esta manera:

# Find / etc / var / mnt / media-xdev-mmin -5 de tipo f

- xdev limita la búsqueda al sistema de archivos que se encuentra y no entrarán en otros sistemas de ficheros montados. Por defecto find no sigue los enlaces simbólicos, por lo que sólo deben incluir -xdev a permanecer dentro de un sistema de archivos y no ir a pasear por recursos compartidos de red y dispositivos extraíbles.

Exclusión de directorios

Puede limitar las búsquedas mediante la exclusión de los directorios con la prune opción. prune es un poco raro, tienes que pensar al revés. En este ejemplo se busca en el sistema de ficheros a excepción de el / proc y / sys pseudo-directorios:

# Find / (-name proc-o-nombre sys )-prune-o-type f-mmin -1

En primer lugar, el nombre de los directorios a excluir, siempre -o significa "o", y escapar de los paréntesis. Entonces -prune -o significa "no mirar en los directorios anteriormente nombrados."

Me gusta usar prune para excluir caches del navegador web, debido a que el desorden de los resultados. El siguiente ejemplo hace eso, y también imprime la fecha y hora para cada archivo:

$ Find / (-name proc-o-nombre de los sistemas-o-nombre. Mozilla-o-nombre de cromo )-prune-o-type f-mmin -10-printf "% Ac t% p n"
Jue 28 de septiembre 2011 10:34:54 AM PDT / home/carla/.local/share/akonadi/db_data/ib_logfile0
Jue 28 de septiembre 2011 10:34:54 AM PDT / home/carla/.local/share/akonadi/db_data/ibdata1
Jue 28 de septiembre 2011 05:21:48 PM PDT / home / carla / articles / findgrep.html


El printf opción "formato de impresión." Utilizar printf cuando se desea controlar el formato de la salida. Tienes la oportunidad de especificar los atributos de nuevas líneas, formato de fecha y hora, y el archivo, tales como permisos, la propiedad y marcas de tiempo. %Ac imprime la fecha y la hora, t inserta una ficha, %p imprime el nombre completo, y n inserta una salto de línea.

Como puede ver, find tiene un montón de funcionalidad integrada que la gente suele añadir el ls comando para.

Encontrar los tipos de archivos

Búsqueda por extensión de archivo es demasiado fácil. En este ejemplo se busca en el directorio actual para tres tipos diferentes de archivos de imagen:

$ Find. -Name "*. png"-o-name "*. jpg"-o-name "*. gif" de tipo f


Utilizar el -name opción de buscar en cualquier parte de un nombre de archivo, ya sea la extensión o parte del nombre. Por ejemplo, para encontrar mysong.ogg podría buscar mys* , o cualquier parte de ella, utilizando los comodines shell normales. Use -iname para una búsqueda de mayúsculas y minúsculas.

Búsqueda de archivos duplicados

Usted puede encontrar archivos duplicados en un par de maneras. Este comando comprueba los hashes MD5:

$ Find. -Type f-exec md5sum '{}' ';' | sort | uniq - todos-repitió-w = separado 24

Esta calcula un hash MD5 para todos los archivos, los ordena por hash, los muestra en líneas separadas, y coincide con los primeros 24 dígitos de cada uno de hachís.

La segunda forma es para que coincida con los archivos por tamaño de archivo:

$ Find. -Type f-printf "% p -% s n" | sort-nr-k3 | uniq-D-f1

Hash MD5 son más precisos, pero coincidentes tamaño de los archivos es más rápido.
Búsqueda de texto dentro de archivos

El grep comando es infinitamente útil para buscar dentro de archivos de texto para encontrar las cosas. Suponga que tiene un directorio lleno de archivos de configuración para un servidor, y desea buscar todos ellos para encontrar todas las entradas de prueba. Si se previsora ​​que usó la palabra "test" en todos ellos, por lo que este comando los encontrará:

# Grep-INR-A2 prueba de / etc / fooserver /

Esto le dice a grep que hacer una búsqueda recursiva de mayúsculas y minúsculas para el "test" en todos los archivos en el archivo / etc / fooserver /, y para imprimir las dos siguientes líneas siguiendo la línea que coincide con la búsqueda. El n opción imprime los números de línea, que es un buen bono de archivos de gran tamaño.

Los bloques de texto para encontrar

El awk comando puede encontrar bloques de texto relacionados de una manera que grep no se puede, con esta sintaxis simple: awk '/start-pattern/,/stop-pattern/' . Supongamos que desea ver la información ampliada de lspci sólo para su dispositivo Ethernet:

$ Lspci-v | awk '/ thernet /,/^$/'
08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
Subsistema: El dispositivo de Lenovo 2131
Flags: bus master, rápido devsel, latencia 0, IRQ 46
Puertos I / O en 3000 [size = 256]
Memoria en f2004000 (64-bit, prefetchable) [size = 4K]
Memoria en f2000000 (64-bit, prefetchable) [size = 16K]
ROM de expansión en f2020000 [size = 128 K]
Capacidades: denied> <Acceso
Del controlador del núcleo en uso: r8169
Los módulos del kernel: r8169


Usted necesita saber el principio y el final del bloque que desea ver, así que es una gran herramienta para enganchar rápidamente las secciones de los archivos de configuración.

En este ejemplo se aprovecha de la configuración de los bloques delimitados con llaves, y los hogares en la listen de las directivas radiusd.conf:

# Awk '/ escuchar {/,/}/' / etc / freeradius / radiusd.conf
escuchar {
ipaddr = *
# Ipv6addr =::
port = 0
type = Cuenta
# Interface = eth0
Clientes # = per_socket_clients
}


Administración de usuarios y archivos

Los empleados se marchan, y la propiedad de permisos de archivos y obtener en mal estado en los archivos del sistema de una organización - pero no te preocupes, find le puede ayudar a arreglar las cosas rápidamente. Usted puede encontrar todos los archivos que pertenecen a un nombre de usuario especificado:

# Find /-user carla

O para un grupo:

# Find /-grupo de administradores


También puedes buscar por el UID y el GID con el -uid y -gid opciones. A continuación, puede mover todos los archivos de un usuario a otro usuario ya sea por nombre de usuario o UID:

# Find /-uid 1100-ok chown-v 1200 {} ;
# Find /-user-ok carla chown-v Steven {} ;


Por supuesto, esto funciona para cambiar la pertenencia al grupo, así:

# Find /-grupo-ok carla chgrp-v administradores {} ;


El ok opción requiere que se verifique cada cambio. Reemplazarla con -exec si está seguro acerca de los cambios.

Cuando los empleados dejan usted puede tener una política de eliminación de sus archivos, que find puede hacer con facilidad:

# Find /-user-exec rm 1100 {} ;

Por supuesto que quiero ser muy seguro que lo tienes razón, porque find que no le lata y le preguntará si está seguro. Simplemente haga lo que usted se lo indique.

find , grep y awk - con herramientas como estas, y tal vez un poco de ayuda de las páginas de su hombre, se puede encontrar casi cualquier cosa en sus sistemas Linux.



http://olex.openlogic.com/wazi/2011/how-to-find-anything-under-linux/

Anuncios

Comentarios Destacados

@GustavKlimt82 +8
En este ejemplo se persigue a los cerdos


8 comentarios - Cómo encontrar cualquier cosa bajo Linux

@GustavKlimt82 +8
En este ejemplo se persigue a los cerdos


@alvix05 +3
# find /usr -name porno

@RockrKnight
&quot;This example hunts down space hogs...&quot;
Este ejemplo busca por (archivos) roba espacio...

Pero claro, es que tiene más gracia decir &quot;cerdos por espacio&quot;. Tu sabes, cuestiones de marketing.
Saludos.