Abierto
Cerca

Uso de Buscar y localizar para buscar archivos en un servidor Linux. Cómo buscar archivos en Linux usando el comando buscar Cómo buscar un archivo en Ubuntu por nombre

Puede haber ocasiones en las que sepa que existe un archivo o directorio, pero no sepa cómo encontrarlo. Hay varios comandos que te ayudarán con esto: buscar, localizar y cuál.

4.10.1. encontrar comando

El comando de búsqueda tiene el siguiente formato:

Encontrar ruta sample_for_search

Si no especifica una ruta, buscar comenzará a buscar el patrón especificado en el directorio actual y continuará a través de todos los subdirectorios del mismo.

El comando de búsqueda tiene muchas opciones, que se pueden encontrar leyendo la página de manual (escriba man find en el símbolo del sistema). La opción más utilizada es -name, que especifica una búsqueda de todos los archivos y directorios que contienen una combinación específica de letras en el nombre.

Encontrar. -nombre tes

Este comando busca en el directorio actual todos los archivos que contengan "tes" en el nombre.

4.10.2. localizar comando

Con este comando podrás ver todos los archivos o directorios cuyos nombres contengan el patrón que estás buscando. Por ejemplo, para buscar un archivo que contenga la palabra perro en el nombre, ingrese en la línea de comando:

localizar perro

El comando de localización utiliza una base de datos para localizar archivos o directorios que contienen la palabra perro en su nombre. Los resultados de la búsqueda pueden incluir un archivo llamado dog, un archivo llamado bulldog.txt, un directorio llamado /dogs/, etc. Para obtener más información sobre el comando de localización, consulte su página de manual (escriba man localizar en el símbolo del sistema).

Siempre que la base de datos esté actualizada, el comando de localización realiza búsquedas muy rápidamente. La base de datos del comando de localización se actualiza todas las noches mediante el servicio cron.

cron es un pequeño programa que se ejecuta en segundo plano y realiza diversas tareas (como actualizar la base de datos del comando de localización) a intervalos regulares. Para acceder al manual de cron, escriba man cron en el símbolo del sistema.

cron actualiza periódicamente la base de datos slocate, que se utiliza para localizar archivos o directorios. Cambiar entre sistemas operativos y apagar la máquina al final del día evita que cron actualice automáticamente la base de datos.

Para actualizar la base de datos manualmente, inicie sesión como root (escribiendo su - en el símbolo del sistema e ingresando la contraseña de root) y escriba actualizadob en el símbolo del sistema.

Después de un tiempo, se actualizará la base de datos de localización utilizada por el comando de localización.

Cuando haya terminado el trabajo que requiere que sea root, escriba salir en la línea de comando; volverá a su sesión.

buscar comando en Linux/FreeBSD. Encuentra la sintaxis del comando.

Encuentra la sintaxis del comando:

# buscar [ruta] [opciones] [parámetros de búsqueda] [acciones en archivos]

Camino- dónde buscar archivos, puede utilizar una lista de rutas separadas por espacios.

Opciones- empezando por el símbolo “-”, seguido del nombre de la opción:
-d Buscar subdirectorios antes de buscar en el directorio mismo
-l Al realizar la búsqueda, siga los enlaces simbólicos.
-profundidad máxima norte Al buscar, no marque más de N niveles de directorio anidados
-minprofundidad sustantivo, femenino— No escanear subdirectorios de nivel N o menos
-montar No busque en directorios de otros sistemas de archivos

Opciones de búsqueda

-a tiempo sustantivo, masculino— Se accedió al archivo por última vez hace N días.
-mtiempo ingl. El archivo fue modificado por última vez hace N días.
-nombre Patrón Nombre del archivo (nombre del patrón) sin especificar la ruta. Se recomienda encerrar siempre el patrón entre comillas.
-tamaño [±]norte El tamaño del archivo es N bloques, si se especifica +N, entonces el tamaño del archivo es mayor que N, -N es menor. El carácter después de N indica el tamaño del bloque. b - 512 bytes, c - bytes, w - 2 bytes, k - kilobytes, M - megabytes, G - gigabytes.
-tipo N Tipo de archivo N. Los valores más utilizados para N son: d - directorio, f - archivo.
-usuario Nombre de usuario El archivo es propiedad de un usuario llamado Nombre de usuario.

Ejemplos de uso del comando buscar usando parámetros:

# encontrar . -tipo f -nombre "~*" -imprimir

Busque archivos normales (no directorios) en el directorio actual cuyos nombres comiencen con el carácter "~".

# encontrar . -archivo más nuevo.bak -tipo f -imprimir

Busque archivos en el directorio actual que se hayan modificado más recientemente que file.bak.

Operadores
Los criterios se pueden combinar mediante operadores. Los siguientes son los operadores en orden de precedencia descendente.

Forma corta Forma larga Descripción
!criterio -no Negación (devuelve verdadero si el criterio es falso)
criterio1-a criterio2 -y Operador AND (verdadero si criterio1 y criterio2 son verdaderos)
criterio1-o criterio2 -o operador OR (verdadero si criterio1 o criterio2 es verdadero)

En general, cuando se utilizan operadores, los criterios se verifican en orden de prioridad. Puede cambiar el orden usando paréntesis. Los paréntesis deben separarse mediante una barra invertida.

Ejemplos de uso del comando buscar usando operadores

#encontrar. \(-nombre "%*" -o -nombre "temp*" \) -tipo f -print

Busque archivos en el directorio actual que comiencen con el símbolo "%" o con "temp" y sean archivos ( -tipo f), en lugar de directorios.

# encontrar . -maxprofundidad 1 \(\(-tamaño +600M -y -tamaño -1G \) -o -nombre "*.mpeg" \) -y -tipo f

Buscar en el directorio actual (sin procesar subdirectorios - -maxdeph 1) archivos regulares ( -archivo f) de más de 600 MB y menos de 1 GB (-tamaño) o archivos cuyo nombre termine en “.mpeg” (-nombre).

Acciones sobre archivos
Cuando se ejecuta el comando de búsqueda, puede realizar varias acciones en los archivos encontrados. Veamos los principales.

Comando ejecutivo\; - Ejecutar el comando. Tenga en cuenta que el comando va seguido de una barra invertida y un punto y coma.
-comando execdir\; - Igual que exec, pero el comando se llama desde el subdirectorio que contiene el archivo actual.
-ok comando \; - Lo mismo que exec, pero antes de procesar el siguiente archivo, se mostrará una solicitud para ejecutar el comando.
-comando okdir \; -Igual que ok para execdir.
-print: imprime el nombre del archivo en la pantalla.
-ls: ejecuta el comando ls -dils en el archivo actual.

En los comandos ejecutables puedes usar parámetro () como argumento, que se reemplaza por la ruta al archivo actual.

Ejemplos de uso del comando buscar usando acciones

# encontrar . -tamaño +1000c -tipo f -ls

Busque archivos normales de más de 1000 bytes en el directorio actual y ejecute el comando ls -dils en ellos (acción ls).

# encontrar . -nombre "~*" -tipo f -ok rm () \;

Busque archivos normales en el directorio actual que comiencen con el carácter de tilde “~” y, para cada archivo, emita una solicitud para eliminarlo (ejecutando el comando rm).

EJEMPLOS:

Buscar archivos por su tamaño

# buscar /var/log -nombre "*.log" -y \(-tamaño +1k -y -tamaño -1000k \) -y -escriba f -print

Se buscarán y mostrarán archivos con la extensión *.log, cuyo tamaño oscila entre 1 kb y 1000 kb.

Buscar archivos por propietario y grupo

Este comando encontrará todos los archivos que no tienen propietario.

Opciones -usuario o -uido le permite buscar archivos por ID de usuario (UID) y nombre de usuario, y la opción -grupo por nombre de grupo.

# encontrar . -nombre "*.log" -usuario raíz -raíz del grupo

Encuentra todos los archivos en el directorio actual con el registro de extensión del usuario raíz y el grupo raíz

# buscar -usuario raíz -o -usuario www

Encuentra todos los archivos del usuario root o www

Usando expresiones regulares

Utilidad encontrar admite expresiones regulares. Demos un ejemplo de inmediato. Digamos que quiero encontrar todos los archivos cuyas extensiones sean .php o .js. Podría hacerlo así:

# buscar -regextype posix-egrep -regex ".*(php|js)$"

Parece un poco complicado, ¿no? Como refutación, señalamos que la sintaxis utilizada aquí es egrep (-regextype posix-egrep) y luego especifica la expresión regular utilizada para la búsqueda. La expresión comienza y termina con comillas simples para evitar que el propio shell intente procesar la expresión regular. Luego viene la expresión.*, que utiliza un comodín que coincide con cualquier carácter o conjunto de caracteres. La parte (php|js) dice que se debe buscar php o js. La barra vertical (|) en esta expresión coincide con la expresión booleana "o". Finalmente, el signo de dólar ($) que finaliza la expresión indica que buscamos estas extensiones al final del nombre del archivo. Entonces, si tiene un archivo llamado js.txt, no coincidirá con los criterios de búsqueda.

trabajando con el tiempo
La utilidad de búsqueda tiene todo lo que necesita para buscar en el momento en que se trabajó en un archivo. Puedes buscar por hora de acceso ( -un momento), ya sea en el momento de la última modificación del archivo (-mtime), o en el momento de su último cambio ( -ctime).

Por ejemplo, busquemos todos los archivos que no se han modificado en los últimos dos días:

# encontrar -mtime +2

Si desea buscar archivos dentro de un rango específico, puede combinar las opciones. Entonces, el comando find -mtime +2 -mtime -5 significaría "hace dos o más días, pero no más de cinco días".

Trabajamos con minutos
A veces es necesario buscar archivos que se han modificado el día anterior y las opciones de búsqueda anteriores no son muy precisas para ello. Lo bueno de find es que también tiene parámetros. -amina, -cmín Y -mmín, que son similares a las opciones analizadas anteriormente, pero utilizan minutos en lugar de días. Entonces, si desea ver qué archivos se modificaron o se accedió en el último día, puede usar estas opciones.

Restricciones de búsqueda
A veces, la utilidad de búsqueda proporciona más resultados de los necesarios. Puede limitar los resultados de búsqueda devueltos por buscar especificando el parámetro máxima profundidad. Por ejemplo, si desea buscar todos los archivos JavaScript en el directorio de WordPress, puede utilizar el siguiente comando:

# buscar wordpress -nombre "*js"

Pero ¿qué pasa si sólo quieres ver los archivos JavaScript que están en el directorio de nivel superior? Puedes limitar tu búsqueda usando el parámetro -máxima profundidad:

# buscar wordpress -max Depth 1 -nombre "*js"

La búsqueda sólo se realizará en el directorio de WordPress, y no en subdirectorios. Si cambias el valor -máxima profundidad por 2, entonces la búsqueda se realizará en subdirectorios del directorio de WordPress, pero no en subdirectorios más profundos.

Combinando la utilidad de búsqueda con otros comandos
Ahora que has encontrado los archivos que buscabas, ¿qué vas a hacer con ellos? Puede utilizar los parámetros en la utilidad de búsqueda. xargos o -ejecutivo, que le permiten especificar la acción a realizar con los archivos una vez que los encuentre.

Supongamos que desea cambiar el propietario de un archivo de raíz a www-data para una gran cantidad de archivos a la vez. Encontrar todos estos archivos es solo el primer paso; también debe cambiar el propietario del archivo. Haga esto manualmente usando la lista devuelta por la utilidad. encontrar, bastante cansado. Por lo tanto, para cambiar los propietarios de los archivos es posible que desee utilizar la opción -ejecutivo:

# buscar -usuario raíz -exec chown www-data()\;

La necesidad de buscar archivos puede surgir en casi todos los sistemas operativos que permiten trabajar con un sistema de archivos. Un ejemplo clásico para nosotros será el sistema operativo Linux, que usaremos en modo consola. Veamos las posibilidades de buscar archivos en el sistema usando la consola. Para buscar archivos en el sistema Linux, existe un comando de búsqueda, que le permite realizar una búsqueda bastante flexible, permitiéndole especificar criterios de búsqueda adicionales. Echemos un vistazo más de cerca a las capacidades de este comando.

Encuentra la sintaxis del comando:

Encontrar ruta –opciones

La ruta es el directorio en el que buscar. Por ejemplo, estos podrían ser valores como este:
. - directorio actual
/ - directorio raíz
~ - directorio de inicio

Después de especificar la ruta, se indican las opciones de búsqueda. Todo parece confuso, pero en realidad no hay dificultades aquí.

Opciones principales:
-nombre- buscar por nombre, establecer el patrón de búsqueda;
-usuario- buscar archivos que pertenezcan a un usuario específico;
-grupo- buscar archivos pertenecientes a un grupo específico;
-permanente- buscar archivos por modo de acceso;
-tipo- buscar archivos por tipo, lista de tipos:

  • b- archivo de bloque especial;
  • d- Catálogo;
  • C- archivo de símbolos especiales;
  • F- archivo normal;
  • yo- enlace simbólico;
  • pag- tubería con nombre;
  • s- enchufe.

-tamaño sustantivo, masculino—- buscar archivos con tamaño n unidades;
-mhora -n +n- buscar archivos por fecha de modificación, hace menos (-) o más (+) días.

Intentemos buscar archivos, simulando varias situaciones.
Busquemos los archivos en un dispositivo extraíble conectado a USB y premontado en el sistema.

Buscar archivos por extensión:

$ buscar /mnt/usb -nombre "*.mp3" -imprimir

Como resultado de ejecutar este comando, se realizará una búsqueda en el directorio /mnt/usb– Este es el directorio en el que está montado el dispositivo. La búsqueda se realizará en todos los archivos (*) con la extensión .mp3.
La máscara de búsqueda se puede cambiar de forma bastante flexible, por ejemplo, puede establecer una palabra clave con la que comienza el nombre del archivo y buscarlo.

Buscar archivos por palabra clave inicial:

$ buscar ~ -nombre "config*" –imprimir

El resultado mostrará una lista de archivos encontrados que comienzan con la palabra clave configuración.
Uno de los puntos fuertes del comando es la capacidad de buscar según una expresión regular. A modo de demostración, buscaremos archivos que comiencen con letras latinas desde la “a” hasta la “j”.

Busque archivos usando un patrón de expresión regular:

$ buscar / -nombre "*" –imprimir

Según el patrón especificado, se realizará una búsqueda de todos los archivos del sistema que comiencen con las letras “a” a “j”.

Cualquiera que esté más o menos familiarizado con los sistemas Linux sabe que los modos de acceso a archivos son una cuestión muy importante. A veces necesita encontrar archivos que tengan derechos específicos específicos para estos fines, puede utilizar la búsqueda con la opción; -permanente.

Busque archivos con modo de acceso 755:

$ encontrar. -permanente 775 –imprimir

De la misma forma, podrás realizar una búsqueda más flexible. Busquemos archivos por grupo de usuarios que tengan acceso completo.

Buscar archivos con permisos para un grupo:

$ encontrar. -permanente -070 –imprimir

El signo de guión se puede reemplazar con un signo más, esto le permitirá buscar archivos que tengan configurado al menos uno de los bits de permiso especificados; los bits restantes se ignorarán.

En el siguiente ejemplo, considere buscar archivos que pertenezcan a un usuario o grupo específico.

Buscar archivos de un usuario específico:

$ buscar / -usuario administrador –imprimir

Como resultado de la búsqueda se encontrarán archivos pertenecientes al usuario. administración.

Busque archivos que pertenezcan a un grupo de usuarios específico:

$ buscar / -agrupar bots –imprimir

Se encontrarán los archivos que pertenecen al grupo de usuarios. robots. Además, puedes buscar archivos cuyos propietarios sean usuarios o grupos inexistentes:

$ buscar / -nouser –imprimir $ buscar / -nogroup –imprimir

La capacidad de buscar tipos específicos de archivos también es una funcionalidad importante. Por ejemplo, si es necesario encontrar todos los enlaces simbólicos en un directorio específico.

Buscar enlaces simbólicos:

$ buscar /etc -escribir l –imprimir

La búsqueda se realizará en el directorio /etc, en el que se seleccionarán todos los enlaces simbólicos.

Puede que sea necesario ver una lista de subdirectorios en un directorio en particular; para tales tareas existe el siguiente comando.

Ver subdirectorios en un directorio:

$ buscar /mnt/usb -tipo d –imprimir

La pantalla mostrará una lista de directorios presentes en el directorio. /mnt/usb. Ahora pasemos a la siguiente opción, esta es la capacidad de buscar archivos de un tamaño determinado.

Buscar archivos por tamaño:

$ encontrar. -tamaño 2000k –imprimir

Se realizará una búsqueda de archivos con un tamaño de 2000 kilobytes; los tamaños también se pueden especificar en megabytes, para esto en lugar de la letra “k” se debe especificar la letra “M”.

Como en el siguiente ejemplo, usaremos la capacidad de buscar archivos por hora de modificación. Para estos efectos utilizaremos la opción –mhora.

Busque archivos modificados en los últimos 2 días:

$ buscar /var/www/html -mtime +2 –imprimir

La búsqueda se realizará en el directorio. /var/www/html y buscará archivos que hayan cambiado durante los últimos 2 días. Quizás una de las opciones de búsqueda más importantes y convenientes. También puedes buscar por fecha de modificación con la condición contraria. Intentemos buscar archivos en el directorio que no hayan cambiado durante 5 días.

Busque archivos que no hayan cambiado durante 5 días:

$ buscar /var/www/html -5 –imprimir

Eso es todo por ahora, espero que estos ejemplos te hayan ayudado a comprender este comando. Su conveniencia se presenta claramente y no será superfluo conocer sus capacidades, especialmente si va a trabajar con el sistema Linux en el futuro. Las habilidades de búsqueda competente de archivos le ahorran mucho tiempo personal y, como usted sabe, el tiempo no tiene precio. ¡Buena suerte en tu trabajo!

Si trabaja con frecuencia en la línea de comando en una computadora o servidor que no tiene ningún shell gráfico, tarde o temprano se enfrentará a la tarea de buscar archivos. Afortunadamente, Linux ya tiene un comando incorporado que le permite buscar un archivo en el sistema.

Hoy hablaremos sobre el uso del comando de búsqueda; créanme, vale la pena aprender a trabajar con esta poderosa y conveniente herramienta.

Cómo utilizar el comando buscar

En términos simples, la sintaxis básica del comando de búsqueda es la siguiente:

Buscar nombre de archivo de parámetros / ruta

Entendamos las capacidades del equipo.

Buscar un archivo por nombre

El primer parámetro es la ruta. Si no tiene idea de dónde podría estar escondido el archivo, reemplace la ruta con /; es suficiente. Sin embargo, buscar en todo el disco puede llevar bastante tiempo y, si sabe dónde puede estar ubicado el archivo, especifique la carpeta desde la que iniciar la búsqueda (por ejemplo, ~ para buscar en la carpeta de inicio del usuario).

Pasemos ahora a los parámetros de búsqueda. Hay dos opciones para buscar un archivo por nombre:

  • nombre - buscar nombre de archivo que distinga entre mayúsculas y minúsculas
  • iname: busca nombres de archivos que no distinguen entre mayúsculas y minúsculas

Hay que recordar que en Linux las mayúsculas y minúsculas del nombre del archivo son importantes, y si necesita buscar, por ejemplo, el archivo Ubuntu.txt, el siguiente comando no dará ningún resultado:

Buscar / -name ubuntu.txt

Pero puedes usar el comando iname y realizar una búsqueda que no distinga entre mayúsculas y minúsculas:

Buscar / -iname ubuntu.txt

Buscar por tipo

El comando de búsqueda le permite buscar más que solo archivos. Estos son los tipos de identificadores que admite la búsqueda:

  • f - archivo normal
  • d - directorio
  • l - enlace simbólico
  • c - dispositivo de carácter
  • b - dispositivo de bloqueo

Por ejemplo, para buscar todos los directorios dentro del directorio de inicio del usuario actual que comiencen con "config", ejecute el siguiente comando:

Buscar ~ -type d -name config*

Enviar resultados de búsqueda a un archivo

La conveniente función de enviar el resultado de un comando a un archivo será extremadamente útil si hay muchos resultados de búsqueda o si es necesario trabajar con ellos más adelante. Por ejemplo, para guardar una lista de todos los archivos de configuración encontrados en un archivo conf_búsqueda, ejecute el siguiente comando:

Busque /etc -tipo f -nombre “*.conf” > conf_search

Buscar archivos por tamaño

Esta es una opción muy útil cuando te estás quedando sin espacio en el disco y necesitas averiguar dónde se fue. Por ejemplo, para buscar archivos de más de 1000 MB, ejecute el siguiente comando:

Buscar / -tamaño +1000M

Se pueden utilizar las siguientes abreviaturas de tamaño:

  • c-bytes
  • k - kilobytes
  • M - megabytes
  • g - gigabytes
  • b - bloques de 512 bytes

Éstas son sólo algunas formas de utilizar un comando potente. Se pueden encontrar más formas en el manual ejecutando el comando

Hola a toda la comunidad Habr.
Este es mi primer post y espero que no sea el último. Por lo tanto, todo tipo de deficiencias, errores y algo de agua en el texto son inevitables, así que no juzgues estrictamente :)
El tema "Consola para principiantes" me pidió que escribiera esta publicación. , donde ISVir planteó, en mi opinión, un tema urgente: cómo contarles a los recién llegados sobre la consola en un lenguaje accesible, sin asustarlos con su supercomplejidad imaginaria.

No voy a quitarle la paridad a ISVir, solo hablaré sobre el uso práctico de varias de las utilidades más básicas "cotidianas", sin las cuales me resulta imposible trabajar en la consola.

Entonces lo que tenemos:

encontrar- buscar archivos. le permite buscar archivos, directorios, enlaces simbólicos y otros objetos de archivos. buscar Le permite especificar muchas opciones de búsqueda como:

  • buscar por máscara (en nombre)
  • control de la profundidad de anidamiento de búsqueda
  • buscar tipos de archivos específicos (directorio, enlaces simbólicos, sockets)
  • buscar por hora de creación/modificación del archivo
  • puede establecer el tamaño (desde y hasta dentro del rango) del archivo
  • realizar acciones en cada archivo encontrado
En Find Mana puedes leer sobre otras opciones y parámetros.

Entonces, de buenas a primeras, busque todos los archivos en el directorio /etc/ que hayan sido modificados en las últimas 24 horas:

$buscar /etc/ -tipo f -mtime -1

Veamos lo que escribimos:

El primer parámetro es siempre el directorio inicial para buscar.
opción -tipo con parámetro F habla encontrar, que sólo necesita buscar archivos normales.
opción -mtime con parámetro -1 indica encontrar que necesita para encontrar archivos que hayan cambiado en las últimas 24 horas.
"-" antes 1 establece el límite superior del rango, es decir “Todo lo que ha cambiado en las últimas 24 horas”

si indicamos "+" antes 1 , Eso encontrar encontraría todos los archivos que cambiaron desde el 01/01/1970 hasta ayer (hace más de un día)
También puedes especificar la fecha exacta poniendo un número sin modificador.

Realizar acciones sobre archivos encontrados.
opción -ejecutivo acepta una línea con un comando que se ejecutará para cada archivo encontrado
el parámetro pasado al comando se indica mediante {}
la línea debe terminar con los caracteres "\;"

Veamos un ejemplo:
* busque en el directorio /tmp todos los archivos que hayan cambiado durante el último mes y cópielos al directorio
/tmp/copia de seguridad/

$buscar /tmp -type f -mtime -30 -exec cp () /tmp/backup \;

* eliminar todos los directorios (recursivamente) con los registros de nombres que han cambiado en el último día en el directorio
/var/www
$buscar /var/www -type d -mtime 0 -name logs -exec sudo rm -fr () \;

parámetro d en opción -tipo indica buscar solo directorios
opción -nombre busca por nombre.
Vale la pena agregar aquí que eliminar archivos de esta manera no es óptimo (es lento).
Para eliminar, buscar tiene una opción incorporada: eliminar, que es un orden de magnitud más rápido.

Consideremos la utilidad awk.
awk es un lenguaje de programación diseñado para el procesamiento de archivos. Su propósito
desarrollo: para facilitar la formulación y solución de muchos problemas relacionados con el procesamiento de información textual. De hecho, awk es una utilidad disponible desde la consola.
Por razones obvias, no consideraré aquí técnicas para escribir código awk; solo les contaré una técnica que es importante para nosotros.

Primero, awk puede obtener datos de STDIN: $echo "prueba"|awk ...
en segundo lugar, awk es eficaz al escribir frases ingeniosas en la consola, porque ejecuta el código que se le proporciona como parámetro:


awk divide el flujo de entrada en campos y coloca estos campos en variables como $1,$2,..$N
Por defecto, el separador de campos es un espacio, pero usando la opción -F"_delimitador_" esto se puede anular:
$head -4 /etc/contraseña
raíz:x:0:0:raíz:/raíz:/bin/bash
demonio:x:1:1:daemon:/usr/sbin:/bin/sh
contenedor:x:2:2:bin:/bin:/bin/sh
sistema:x:3:3:sys:/dev:/bin/sh

$cat /etc/passwd|awk -F":" "(imprimir $1)"
raíz
demonio
papelera

Por ejemplo, tenemos varios sitios en el directorio /var/www. para cada sitio hay un directorio de registros, donde se escriben los registros de Apache (para este sitio). Y ahora queremos saber el volumen total de estos registros, así como todos los registros de más de 100 Mb.

1.busque registros grandes:

$buscar /var/www -tipo f -nombre “access.log*” -tamaño +100M
/var/www/site1/logs/access.log
/var/www/site2/logs/access.log.1.gz

2.calcular el volumen total de registros:

Busque /var/www/ -type f -name "access.log*" -exec du -k () \;|awk "(s+=$1)END(print s)"
5071604


Así que no te asustes, te lo explicaré todo ahora mismo :)

Buscar busca todos los archivos por máscara (access.log*) y ejecuta el comando para cada uno du.
equipo du imprime el tamaño del archivo. opción -k salidas en kilobytes.
entonces el procesador arranca awk, simplemente suma el primer campo de cadenas (números) en una variable s y muestra el valor de la variable en la pantalla.

Otro ejemplo: busquemos todos los archivos y directorios del sistema que pertenecen al usuario. prueba1 y calcular el volumen total.

#find / -user test1 -exec du -sm () \;|awk "(s+=$1)END(print s)"

aquellos. aquí usando la opción -usuario find busca archivos pertenecientes al usuario test1 y para cada archivo/directorio calculamos su tamaño (comando du)
Luego, awk recibe estos datos a través del transportador y, como hicimos anteriormente, calcula su suma en Kb.

DE ACUERDO. Creo que es suficiente por hoy.
La publicación resultó ser bastante grande, aparentemente por costumbre :)

Quiero decir de inmediato que mi objetivo no era simplemente hablar sobre el uso de find y awk, sino dar ejemplos de aplicaciones prácticas en situaciones reales.
Si te gusta el artículo, seguiré escribiendo en esta dirección.

Gracias por tu tiempo.