Como borrar archivos en serie en MacOs o Linux mediante un script

Encuentre y elimine archivos con un comando, La sintaxis básica del comando de búsqueda es la siguiente:

find dir-name criteria action

Donde,

  1. dir-name : – Define el directorio de trabajo como buscar en /tmp/
  2. criteria : Úselo para seleccionar archivos como “*.sh”
  3. action : La acción de búsqueda (qué hacer en el archivo), como eliminar el archivo.

Si desea eliminar varios archivos como ‘.jpg’ o ‘.sh’ con un comando de búsqueda, intente:

find . -name "FILE-TO-FIND" -exec rm -rf {} \;

O

find /dir/to/search/ -type f -name "FILE-TO-FIND-Regex" -exec rm -f {} \;

La única diferencia entre las dos sintaxis anteriores es que el primer comando también elimina directorios, mientras que el segundo comando solo elimina archivos. Donde, las opciones son las siguientes:

  1. -name "FILE-TO-FIND" : modelo de archivo.
  2. -exec rm -rf {} \; : Elimine todos los archivos que coincidan con el patrón de archivo.
  3. -type f : Solo haga coincidir archivos y no incluya nombres de directorio.
  4. -type d : Solo haga coincidir los directorios y no incluya los nombres de los archivos.

La versión moderna del comando de búsqueda también tiene la opción -delete . En lugar de usar el -exec rm -rf {} \;, usa el -delete para eliminar todos los archivos coincidentes. También podemos pasar explícitamente la opción -depth a find para procesar el contenido de cada directorio antes que el propio directorio. También es posible utilizar la opción -maxdepth para controlar descender en la mayoría de los niveles de directorios por debajo de los puntos de inicio. Por ejemplo, -maxdepth 0 significa aplicar únicamente las pruebas y acciones a los propios puntos de partida. Del mismo modo, podemos pasar el -mindepth al hallazgo. Significa no aplicar ninguna prueba o acción en niveles inferiores a los niveles (un número entero no negativo). Por ejemplo, -mindepth 1 significa procesar todos los archivos excepto los puntos de partida. Así que aquí hay una sintaxis simplificada:

find /dir/to/search/ -type f -name "FILES-TO-FIND" -delete
find /dir/to/search/ -type f -name "FILES-TO-FIND" -depth -delete
find /dir/to/search/ -maxdepth 2 -type f -name "FILES-TO-FIND" -depth -delete