Cómo encontrar y eliminar archivos en Linux

Cómo encontrar y eliminar archivos en Linux
Este tutorial explica cómo combinar el comando Linux Find con otros para buscar y eliminar los archivos con una sola ejecución de comando.

Después de leer este tutorial, sabrá cómo simplificar la tarea de eliminar los archivos en Linux utilizando diferentes técnicas. Este tutorial está optimizado para usuarios nuevos y experimentados, yendo directamente al punto práctico y explicando cada aspecto. Te animo a practicar todos los ejemplos dados para incorporar este conocimiento. Solo ten cuidado con el contenido que eliminas.

Este artículo incluye las capturas de pantalla de cada paso, lo que facilita que todos los usuarios de Linux las apliquen.

Encontrar y eliminar archivos en Linux

Esta sección explica las diferentes técnicas para encontrar los archivos y eliminarlos en la marcha con un solo comando o con la combinación de comandos.

Para comenzar, veamos qué hay en el directorio de inicio usando el LS (Lista) Comando.

LS

Como puede ver en la figura anterior, hay varios archivos y directorios. Entre ellos, podemos ver el 1.TXT, 2.TXT y 3.TXT.

Podemos usar el comando Buscar seguido del tipo de archivo, el nombre del archivo y el -borrar opción.

Pero en el siguiente ejemplo, no eliminaremos un archivo específico, sino todos los archivos con el ".extensión de txt ".

encontrar . -escriba f -name "*.txt "-delete

Dónde:

  • encontrar: El comando encontrar evidentemente se usa para buscar los archivos.
  • . (Punto): El punto después del comando buscar especifica que la operación debe realizarse dentro del directorio actual. Nuestro caso está en el directorio de inicio, por lo tanto, este punto es igual a /Usuario doméstico.
  • -Tipo F: Esta opción especifica qué archivos queremos encontrar. En caso de que desee buscar en los directorios, reemplace la F con una D.
  • -nombre: Esta es la opción de especificar el objetivo de archivo/directorio. Esta opción debe escribirse antes del nombre del archivo/directorio para definirlo.
  • "*.TXT": En este caso particular, buscamos todo el ".archivos txt "que especificamos escribiendo"*.TXT".
  • -borrar: Esta opción instruye al comando de búsqueda para eliminar los archivos encontrados.

Como puede ver en la captura de pantalla anterior, después de ejecutar el LS Comando nuevamente, los archivos TXT no se muestran. Fueron eliminados por el comando ejecutado previamente.

Por supuesto, puede encontrar y eliminar los archivos específicos como se muestra en la siguiente figura donde archivo3 se encuentra y elimina.

encontrar . -escriba el archivo F -name3 -delete

Como se explica en la lista de comando y opciones anteriores, si desea eliminar un directorio en lugar de un archivo, debe reemplazar el F con un d después de la -tipo Opción como se muestra en la siguiente imagen:

encontrar . -tipo d -name dir1 -delete

Supongamos que desea eliminar muchos archivos cuya primera parte de sus nombres son las mismas. En la siguiente captura de pantalla, puedes ver el archivo1, archivo2 y archivo3.

Si desea eliminar todos los archivos "FILEX", solo necesita reemplazar la parte de los nombres de archivo sin coincidencia con el comodín (*) como se muestra en el siguiente ejemplo:

encontrar . -escriba f -name "archivo*" -delete

Todos los ejemplos anteriores explicaron cómo eliminar los archivos utilizando el -borrar opción. Esta sección explica cómo obtener el mismo resultado usando el -ejecución dominio.

La primera parte del siguiente comando ya se explicó anteriormente. El comando Incorporated -exec se utiliza para aplicar una acción basada en el resultado del comando anterior.

encontrar . -Nombre "Algo.log "-exec rm -rf \;

Dónde:

  • -Ejecutivo: Instruye a ejecutar un comando posterior después de la ejecución del primer comando (buscar).
  • RM -RF: Este comando se utiliza para forzar la eliminación de archivos y directorios que coinciden con los nombres de los pistas.
  • "": Este es el encontrar marcador de posición de comando, lo que significa que toma los nombres de archivo o directorio dados al comando Buscar para ejecutar el comando dado (después -ejecución) en ellos. En el ejemplo anterior, RM -RF se aplica al marcador de posición que representa el "registro"
  • "\;": La barra trasera y el punto y el punto muerto cierra o termina el -ejecución

Ahora, veamos un nuevo escenario usando el comando LS nuevamente. Como puede ver, hay diferentes ".archivos de txt ".

En este caso, reemplazaremos el -borrar opción con el -ejecutivo de nuevo para eliminar todo el ".archivos txt "como lo hicimos en el segundo ejemplo de este documento, pero utilizando una técnica diferente.

Puede ver el comando en la tercera línea de la siguiente figura. El comando LS anterior muestra los archivos existentes antes de ejecutar encontrar, y el segundo LS muestra el resultado con todos los ".archivos txt "eliminados.

encontrar . -escriba f -name "*.txt "-exec rm -f \;

Ahora, creemos un nuevo escenario que puede ver en el siguiente ejemplo. Este escenario incluye varios ".txt "y".C archivos ".

Supongamos que desea eliminar ambos .TXT y .C archivos a la vez usando la opción -delete en lugar de la opción -exec. Como puede ver en la siguiente imagen, los archivos de nombre están entre el \ ( y \). Antes del segundo nombre de archivo, tenemos el -O opción seguida de la -nombre y el segundo nombre de archivo (o condición en este caso, ya que estamos eliminando todo el ".archivos txt "). Puedes agregar el -O -nombre muchas veces como necesitas, pero recuerda que el primero -nombre no está precedido por el -O opción.

encontrar . \( -nombre "*.c "-o -name"*.txt "\) -delete

Como puedes ver, ambos .TXT y .C Los archivos se eliminaron con éxito.

Ahora, combinemos el comando Find con el comando xargs (explicado al final de este tutorial).

En el siguiente ejemplo, eliminamos todos los ".archivos txt "usando xargs, donde -I es el marcador de posición y entre % ejecutamos el comando.

Como puede ver, después de la segunda ejecución de LS, todos .C y .TXT se eliminaron los archivos.

encontrar *.txt -type f | XARGS -I % RM " %"

La sintaxis para eliminar muchos archivos es más fácil con Xargs. En el siguiente comando, ambos .C y .TXT se eliminan los archivos.

encontrar *.TXT *.t -type f | XARGS -I % RM " %"

Finalmente, supongamos que desea eliminar los archivos por fecha y no por nombre o extensión. En este caso, el comando finales puede identificar el mtime (fechas de archivo de creación o modificación) de los archivos y directorios.

En la siguiente imagen, puede ver el dir2 directorio que contiene 4 archivos: archivo1, archivo2, archivo3 y archivo4. Todos los archivos dentro del dir2 fueron creados en las últimas 24 horas.

Identificar los archivos es posible utilizando el -MITIA opción seguida del intervalo de tiempo de los archivos. En este caso, el -1 La opción indica 1 día, 24 horas. El -1 significa los archivos creados o modificados en el último día, mientras +1 significa los archivos creados o modificados hace más de un día.

En el siguiente ejemplo, usamos el comando Buscar con la opción -mtime para eliminar los archivos creados o modificados el último día.

encontrar dir2 -type f -mtime -1 -delete

Xargs vs -exec

El Xargs El comando casi siempre se implementa con tuberías (pero no necesariamente tiene que) usar el primer comando como argumento. Contrariamente a la tubería, permite el uso del primer comando como argumento y no solo como una salida anterior o comando predecesor.

El siguiente ejemplo en esta sección enumera los archivos y directorios utilizando el LS (Lista) comando y mueve los archivos enumerados a un directorio diferente con MV y Xargs comandos. Este no es el método adecuado para mover los archivos, pero es útil como ejemplo para mostrar cómo Xargs El comando funciona.

Primero, da un vistazo a mi Linuxhintdir directorio. Como puede ver, tenemos 3 archivos: archivo1, archivo2 y archivo3.

LS Dir1 Dir2

Ahora, mueva todos los archivos dentro Dir1 a dir2 utilizando el MV dominio.

ls ~/dir1/* | xargs mv -t ~/dir2

Como puede ver, el resultado LS ~/Dir1/* fue aprobado por Xargs después de la MV dominio.

El -ejecución El comando es similar a Xargs. Puede ejecutar comandos basados ​​en la salida del primer comando. Contrariamente a Xargs, -ejecución Ejecuta el comando cada vez que un archivo coincide con la condición. Si usamos el comando -exec para eliminar los archivos, los eliminará el archivo por archivo. Mientras que XARGS ejecuta el comando a la vez para todos los archivos coincidentes. Esto hace Xargs un poco más rápido que -exec. Por lo tanto, si está tratando con muchos archivos, Xargs sería conveniente sobre -ejecución.

Conclusión

Linux tiene muchos métodos para lograr la misma tarea. Encontrar y eliminar los archivos con un solo comando es un conocimiento de que cualquier usuario de Linux debería tener independientemente en su experiencia. Este tutorial se centra en encontrar y eliminar los archivos, pero Xargs y -Exec se pueden usar con muchos comandos de Linux. Es importante mencionar que algunas funciones están disponibles solo en el encontrar versión. La mayoría de los consejos explicados son útiles para casi todas las distribuciones de Linux.

Gracias por leer este tutorial explicando cómo encontrar y eliminar los archivos en Linux. Sigue siguiéndonos para obtener más consejos profesionales.