Как следует из вопроса, у меня есть ситуация, когда у меня есть папка, в которую пользователи могут загружать странные вещи. Настройте cron-задание, чтобы очищать эту папку каждые несколько часов.
Конечно, в целях безопасности у него есть .htaccess. Мой вопрос в том, как удалить все (файлы и каталоги) в этом каталоге, включая скрытые, имена которых начинаются с точки, но не.htaccess?
В настоящее время мне приходится rm -rf *
выполнять эту работу, но если пользователь загрузит файл с именем, начинающимся с точки, он не будет удален.
Любая помощь будет оценена по достоинству. Спасибо!
решение1
В Баше:
shopt -s dotglob extglob
rm !(.htaccess)
решение2
Я бы использовал find, например:find /path/to/dir/ -mindepth 1 -not -name .htaccess -delete