Fantezi dosya silme modül benim için hiç işe yaramadı. İşte daha manuel bir alternatif.
Yönetilen dosya tablosunda olmayan bir klasörden dosyaları silmek için şunları yapabilirsiniz:
1) Tüm yönetilen dosyaların bir listesini oluşturun:
mysql whateverdb -e "select filename from file_managed" > ~/managed-files.txt
2) Bu listede olmayan bir dizindeki tüm dosyaları silin. Bunu yapmak için küçük bir bash betiği kullandım:
#!/bin/bash
IMG_FOLDER='/var/www/html/yoursite/docroot/sites/default/files/certain-images'
EXCLUDES='/home/yourhomeuser/managed-files.txt'
for FILE in $IMG_FOLDER/*; do
if ! grep "$FILE" "$EXCLUDES"; then
echo "Deleting $FILE"
rm -f "$FILE"
fi
done
Yalnızca IMG_FOLDER
değişkeni, dosyaları silmek istediğiniz klasörün yoluyla değiştirin (ve yolu dışlayanlar dosyanızla güncelleyin)