La forma más fácil sería simplemente agregar -mindepth 1
, que omitirá la primera jerarquía de profundidad y, por lo tanto, omitirá su directorio principal.
Además, no necesitas un -exec
extra llamar a rm
, solo puedes delete
las carpetas directamente si están vacías.
find /var/www/html/content/processing -mindepth 1 -type d -mtime +1 -delete
Si no están vacíos:
find /var/www/html/content/processing -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;
Si eres perezoso, también puedes expandir un comodín. Desde *
no incluye el directorio actual por defecto (a menos que dotglob
está configurado), también puede hacer:
find /var/www/html/content/processing/* -type d -mtime +1 -delete
Sin embargo, esto tampoco incluiría carpetas ocultas, de nuevo debido al dotglob
opción.
El problema es que find devuelve el directorio actual (.) junto con los demás directorios, por lo que elimina la carpeta de procesamiento y los subdirectorios. Una forma rápida de evitarlo sería agregar la opción
-not -name .
lo que evita que find genere el directorio actual y, a su vez, evita que se elimine.
Eso funcionaría si estuviera ejecutando el comando dentro del directorio de procesamiento, para tener en cuenta el hecho de que está utilizando una ruta absoluta:
-not -name /var/www/html/content/processing
Y todo el comando sería:
find /var/www/html/content/processing -type d -mtime +1 -not -name /var/www/html/content/processing -exec rm -rf {} \;