Página 2 de 2

Re: Eliminar carpetas con una antigüedad de más de 12 horas

NotaPublicado: 2015-05-07 18:05 @795
por explorer
A -C le tienes que dar la ruta completa:

if ( -C "/home/sim/data/$file" > 0.5 )

Y lo mismo para rmtree(). Lo que hace opendir y readdir es devolverte la lista de archivos y carpetas de un directorio, pero NO entra en ese directorio ni nos devuelve la ruta absoluta a esos archivos y carpetas.

Las llaves de las líneas 13 y 17 las puedes quitar.

El error decía que estamos usando un valor indefinido con '>'. Eso quiere decir que -C $file daba un resultado indefinido.

Consultando perldoc -f -X, dice:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  Lista de funciones de Perl en orden alfabético
    -X IDENTIFICADOR_ARCHIVO
    -X EXPR
    -X IDENTIFICADOR_DIR
    -X  Un test de archivo, donde X es una de las letras listadas abajo. Este
        operador unario toma un argumento, bien sea un nombre de archivo o un
        identificador de archivo o de directorio, y comprueba si el archivo
        asociado para ver si algo sobre él es cierto. Si el argumento se
        omite, se prueba $_, excepto para "-t", que prueba STDIN. Mientras no
        se diga lo contrario, se devuelve 1 para verdadero y '' para falso. <span style="font-weight: bold">Si
        el archivo no existe o no puede examinarse, devuelve "undef"</span> y
        actualiza $! (errno). A pesar de los nombres graciosos, la precedencia
        es la misma que cualquier otro operador unario con nombre. El operador
        puede ser cualquiera de estos:
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Así que nos está avisando que el archivo o carpeta $file no existe en el directorio actual. De ahí deducimos que no estamos en el mismo directorio que en donde está extrayendo los nombres readdir(). Por eso hay que darle la ruta absoluta. O... hacer primero un chdir '/home/sim/data/'; y entonces sí funciona (por que estamos en el mismo directorio).

Re: Eliminar carpetas con una antigüedad de más de 12 horas

NotaPublicado: 2015-05-08 02:40 @153
por enric73
explorer, gracias por las explicaciones. Ahora ya elimina las carpetas de más de 12 horas de creación. Muchas gracias. Solucionado.