Necesita una secuencia de comandos para eliminar todos los archivos temporales que comienzan con ~$

Necesita una secuencia de comandos para eliminar todos los archivos temporales que comienzan con ~$

Un escaneo reciente en nuestro servidor de archivos en busca de archivos temporales con~$adjunto al inicio del nombre produjo casi 1.000 resultados.

Las fechas de "Última modificación" de estos archivos se remontan a 2003 (por lo que ahora generalmente todos son redundantes y se pueden eliminar de forma segura).

Necesito un script que identifique y elimine cualquier archivo que comience con "~$", que luego podría programar para que se ejecute una vez por semana en el servidor para purgar estos archivos temporales automáticamente con frecuencia.

Respuesta1

Para un directorio específico, esto eliminaría todos los archivos con nombres que comiencen con ~$ de forma recursiva:

find /path/to/directory -type f -name '~$*' -exec rm '{}' \;

Para limitarlo solo con ese directorio específico y no con sus subdirectorios, use max Depth:

find /path/to/directory -maxdepth 1 -type f -name '~$*' -exec rm '{}' \;

Cambie el argumento integral para que -maxdepthdependa del nivel previsto de directorios en los que buscar archivos.

Otro enfoque más simple es usar globos, pero no es realmente una buena idea ya que intentaría tocar directorios que coincidan con el patrón. Todavía no los eliminará, pero tendría que preocuparse por el mensaje de error. Podrías usar -fla opción o enviar una salida de error /dev/nullpero ya está sucio para un método:

rm '/path/to/directory/~$'*

información relacionada