varios todos otro mover los eliminar ejemplos directorio copiar confirmacion comandos comando borrar basicos archivos bash recursion find subdirectories rm

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.