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,
- dir-name : – Define el directorio de trabajo como buscar en /tmp/
- criteria : Úselo para seleccionar archivos como “*.sh”
- 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:
- -name \"FILE-TO-FIND\" : modelo de archivo.
- -exec rm -rf {} \\; : Elimine todos los archivos que coincidan con el patrón de archivo.
- -type f : Solo haga coincidir archivos y no incluya nombres de directorio.
- -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