Các mô-đun xóa tập tin ưa thích hoàn toàn không hoạt động đối với tôi. Đây là một thay thế thủ công hơn.
Để xóa các tệp khỏi thư mục không có trong bảng tệp được quản lý, bạn có thể:
1) Tạo danh sách tất cả các tệp được quản lý:
mysql whateverdb -e "select filename from file_managed" > ~/managed-files.txt
2) Xóa tất cả các tệp khỏi một thư mục không có trong danh sách đó. Để làm điều này, tôi đã sử dụng một tập lệnh bash nhỏ:
#!/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
Chỉ cần thay đổi IMG_FOLDER
biến thành đường dẫn của bất kỳ thư mục nào bạn muốn xóa tệp khỏi (và cập nhật đường dẫn đến tệp loại trừ của bạn)