• Publicidad

Cómo borrar archivos

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cómo borrar archivos

Notapor lnx_hg » 2009-01-14 19:02 @834

Buenas. Estoy buscando la forma de borrar todos los archivos de un directorio. Lo estoy intentando de la siguiente forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
rm $rootdir.'*.*';
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

donde $rootdir = my directorio.

Agradecería cualquier ayuda. :D
lnx_hg
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2007-08-13 12:52 @578

Publicidad

Notapor explorer » 2009-01-14 19:17 @845

Debes usar unlink:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
unlink <$rootdir/*.*>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor lnx_hg » 2009-01-14 19:31 @855

Gracias por contestarme, pero no funciona. Ya verifiqué la ruta y sí es correcta. Con el comando que me pasaste no marca error, pero tampoco borra los archivos.
lnx_hg
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2007-08-13 12:52 @578

Notapor explorer » 2009-01-14 19:36 @858

Depende un poco del sistema operativo. unlink() devuelve el número de elementos que ha borrado.

Prueba a hacer un print antes para saber qué es lo que estás intentando borrar:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
print "$rootdir/*.*";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Quizás debas poner

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
unlink <$rootdir\*.*>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

(lo de usar '/' o '\' depende un poco de tu sistema operativo.

O también, entrar en el directorio y borrar:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
chdir $rootdir;
unlink <*.*>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


PERO YO NO LO HARÍA SIN COMPROBAR ANTES QUE EL chdir() HA FUNCIONADO CORRECTAMENTE.

¿Puedes poner el resultado del print, aquí?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor lnx_hg » 2009-01-14 20:00 @875

la ruta tiene un espacio, crees que eso afecte?
$rootdir = E:/Mis documentos/web/
es correcto
El mensajero no es importante, lo que importa es el mensaje.
lnx_hg
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2007-08-13 12:52 @578

Notapor lnx_hg » 2009-01-14 20:33 @898

Esto es lo que estoy haciendo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$rootdir = "e:/mis documentos/web/promored/pub/eventos/20/*.*";
unlink($rootdir);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
lnx_hg
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2007-08-13 12:52 @578

Notapor explorer » 2009-01-15 05:28 @269

No, el problema es la forma de escribir el comando. Estás intentando que Perl borre un fichero que se llama '*.*', no que borre todos los ficheros que corresponden a esa máscara.

Prueba con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$rootdir = 'e:/mis documentos/web/promored/pub/eventos/20/*.*';
unlink <$rootdir>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$rootdir = 'e:/mis documentos/web/promored/pub/eventos/20';
unlink <$rootdir/*.*>;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$rootdir  = 'e:/mis documentos/web/promored/pub/eventos/20';
@ficheros = glob("$rootdir/*.*");
unlink @ficheros;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Fíjate que con unlink, hay que tener cuidado a la hora de escribir lo que le sigue: o una lista de ficheros, o un comando diamante (<>) con caracteres comodín. Si lo pasas con paréntesis, estás pasando una lista de ficheros, pero lo que quieres es pasar una expresión con caracteres comodín.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados