¿Cómo eliminar todos los archivos y directorios de un directorio, incluidos los ocultos, excepto .htaccess?

¿Cómo eliminar todos los archivos y directorios de un directorio, incluidos los ocultos, excepto .htaccess?

Como sugiere la pregunta, tengo una situación en la que tengo una carpeta donde los usuarios pueden cargar cosas raras allí. Configure un trabajo cron para limpiar esta carpeta cada pocas horas.

Tiene un .htaccess por motivos de seguridad, claro, mi pregunta es, ¿cómo puedo borrar todo (archivos y directorios) de ese directorio, incluidos los ocultos cuyo nombre empieza con un punto, pero no el.htaccess?

Actualmente tengo rm -rf *que hacer el trabajo, pero si el usuario carga un archivo con un nombre que comienza con un punto, no se eliminará.

Cualquier ayuda sería muy apreciada. ¡Gracias!

Respuesta1

En fiesta:

shopt -s dotglob extglob
rm !(.htaccess)

Respuesta2

Yo usaría buscar, como:find /path/to/dir/ -mindepth 1 -not -name .htaccess -delete

información relacionada