bash - otro - Usando find para borrar todos los subdirectorios(y sus archivos)
mover todos los archivos de un directorio a otro en linux (3)
Estoy seguro de que esto es sencillo y respondí en algún lugar, pero no logré encontrar lo que estaba buscando. Básicamente, estoy tratando de ejecutar un script cron para borrar el contenido de un directorio dado cada 7 días. Hasta ahora he intentado lo siguiente,
find /myDir -mtime 7 -exec rm -rf {} /;
Sin embargo, esto también elimina el directorio principal myDir, que no quiero. Yo también lo intenté,
find /myDir -type f -type d -mtime 7 -delete
que parecía no hacer nada. Yo también lo intenté,
fnd /myDir -type d -delete
que eliminó todos, excepto el directorio principal, justo como necesito. Sin embargo, un mensaje de advertencia apareció leyendo,
ruta relativa potencialmente no segura
Apreciaría si alguien puede rectificar mi script para que elimine de forma segura todos los subdirectorios en la carpeta.
Muchas gracias. =)
ACTUALIZACIÓN: decidí ir por lo siguiente,
find /myDir -mindepth 1 -mtime 7 -delete
Basado en lo que aprendí de todos los que respondieron. Nuevamente, muchas gracias a todos.
Qué pasa
cd myDir/ ; find . -type d -delete
asumiendo que ejecutas esto desde el directorio principal de myDir
.
Si no puede garantizar que myDir exista, entonces esto es más seguro:
cd myDir/ && find . -type d -delete
Tratar:
find /myDir -mindepth 1 -mtime 7 -exec rm -rf {} /;
find /myDir -mindepth 1 -mtime 7 -delete
probablemente debería ser
find /myDir -mindepth 1 -mtime +7 -delete
(o tal vez mtime +6
). El +
significa cosas de 7 días o más en lugar de exactamente 7 días.