
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 -maxdepth
dependa 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 -f
la opción o enviar una salida de error /dev/null
pero ya está sucio para un método:
rm '/path/to/directory/~$'*