eliminar recursivamente pero mantener el archivo .gitignore

eliminar recursivamente pero mantener el archivo .gitignore

He estado probando varios métodos desde SU pero no he podido hacer esto: tengo una carpeta (ejemplo: /var/www/tmp/) que contiene varios archivos y directorios. Me gustaría eliminar todos los archivos y carpetas de este directorio excepto los archivos ocultos que residen en /var/www/tmp, ¿cómo puedo hacerlo?

¡Gracias!

editar: para ser claro, me gustaría usar esto en un cronjob

Respuesta1

find /var/www/tmp -mindepth 1 -maxdepth 1 ! -name ".*" -exec rm -r -- {} +

Encontrará archivos en la profundidad máxima (y mínima) 1 (es decir, archivos directamente en el directorio dado) que nonocomience con un punto y ejecute rm -rcon las coincidencias como argumentos.

Pruébelo con un simple eco o algo así primero para no dispararse en el pie antes de comprender exactamente cómo funciona para usted.

Esto responde a su pregunta sobre cómo mantener todos los archivos ocultos. Su tema es un poco diferente, pero el comando de búsqueda se modifica fácilmente para ignorar los archivos llamados .gitignore.

Respuesta2

A menos que tenga dotglobconfigurada la opción Shell, cd /var/www/tmp; rm -rf *hará lo que quiera

información relacionada