
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 -r
con 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 dotglob
configurada la opción Shell, cd /var/www/tmp; rm -rf *
hará lo que quiera