¿Hay alguna manera de enumerar todos los archivos no utilizados que residen dentro del sistema de archivos públicos y dentro de un directorio de temas y enumerarlos, o tal vez incluso tener una opción para eliminarlos automáticamente?
Me refiero a los archivos que actualmente no están vinculados desde ninguna hoja de estilo CSS o desde cualquier nodo.
Respuestas:
Puede encontrar archivos huérfanos ejecutando la siguiente consulta MySQL:
Esto devuelve todos los archivos que no tienen un nodo asociado. No estoy seguro de si es seguro eliminar las filas y archivos devueltos, probablemente también depende de la configuración de su módulo. ¡Úselo bajo su propio riesgo!
Fuente: http://drupal.org/node/733258#comment-5582764
fuente
Para aquellos que vienen a esta publicación tres años después, hay un pequeño módulo que puedes usar para hacer esto llamado Eliminar archivos de lujo .
En el momento de esta publicación, está en versión beta, así que úselo bajo su propio riesgo. Como siempre, limpiar cualquier cosa huérfana a través de consultas DB puede ser incompleto y su éxito depende en gran medida de la configuración particular de su módulo.
fuente
Algo que puede ayudar a identificar " archivos que ya no están conectados a nodos o archivos y directorios que no están en la tabla administrada de archivos " (como en la pregunta duplicada sobre " ¿Cómo eliminar archivos no utilizados? "), Es usar el Módulo Comprobador de archivos . Algunos detalles al respecto, desde su página de proyecto:
Entonces, lo que podrías hacer es así:
Nota : aunque esta pregunta es sobre D7, también es una versión (alfa) para D8.
fuente
hay un módulo que elimina archivos no deseados archivo de fantasía borrar .
fuente
Puede eliminar el archivo no utilizado por
Eliminar manualmente de la tabla file_managed , mediante alguna consulta como
$this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();
Establecer el estado de un archivo 0 , para marcar es como archivo temporal, por lo que el cron lo eliminará después de cierto tiempo.
$file = File::load ($fid); $file->setTemporary();
fuente
El elegante módulo de eliminación de archivos no funcionó en absoluto para mí. Aquí hay una alternativa más manual.
Para eliminar archivos de una carpeta que no está en la tabla de archivos administrados, puede:
1) Cree una lista de todos los archivos administrados:
2) Eliminar todos los archivos de un directorio que no están en esa lista. Para hacer esto, utilicé un pequeño script bash:
Simplemente cambie la
IMG_FOLDER
variable a la ruta de la carpeta de la que desea eliminar archivos (y actualice la ruta a su archivo de exclusión)fuente