Как следует из вопроса, у меня есть ситуация, когда у меня есть папка, в которую пользователи могут загружать странные вещи. Настройте cron для очистки этой папки каждые несколько часов.

Он имеет .htaccess по соображениям безопасности, конечно, мой вопрос, как я могу удалить все (файлы и каталоги) в этом каталоге, включая скрытые, чье имя начинается с точки, но не .htaccess?

В настоящее время у меня есть rm -rf * для выполнения этой работы, но если пользователь загрузит файл с именем, начинающимся с точки, он не будет удален.

Любая помощь приветствуется. Спасибо!

2 ответа2

3

В Баш:

shopt -s dotglob extglob
rm !(.htaccess)
3

Я бы использовал find, например: find /path/to/dir/ -mindepth 1 -not -name .htaccess -delete

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .