Para ejemplificar lo antes mencionado pondré el siguiente ejemplo:
$ rm -rf /home/javoaxian/proyecto/.svn /home/javoaxian/proyecto/modulo1/.svn /home/javoaxian/proyecto/modulo2/.svn
Esto es muy tedioso y tardado, para lo cual, realizé este script en perl, donde le puedes indicar el archivo o directorio que deseas eliminar y en que directorio lo va a buscar.
Aquí les dejo el código del script:
#!/usr/bin/perl
# Creado por: JavoAxian
# Año: 2007
$elementoABorrar = $ARGV[0];
$directorio = $ARGV[1];
if($elementoABorrar eq "")
{
print "Ingresa el Archivo/Directorio a borrar\n";
exit(0);
}
elsif($directorio eq "")
{
print "Ingresa el Directorio donde se encuentra el Archivo/Directorio a " .
"borrar\n";
exit(0);
}
$buscar = `find $directorio -name $elementoABorrar -print`;
@directorios = split(/\n/,$buscar);
print "Iniciando la eliminación del archivo/directorio: $elementoABorrar en " .
"el directorio: $directorio\n";
for($contador=0;$contador<@directorios;$contador++)
{
$dir = $directorios[$contador];
`rm -rf "$dir"`;
print "Archivo/Directorio eliminado: $dir\n";
}
print "Finalizando la eliminación del Archivo/Directorio: $elementoABorrar\n";
Copien el código anterior y peguenlo en un archivo. Para ejemplificar le pondré al programa el nombre de borrarArchivosRecursivamente.pl.
Para usarlo, deberemos darle permisos de ejecusión y posteriormente correr el comando recibiendo como argumentos el archivo o directorio para borrar y el directorio donde se encuentra el archivo a borrar:
$ chmod 755 borrarArchivosRecursivamente.pl
$ ./borrarArchivosRecursivamente.pl .svn /home/javoaxian/proyecto
$ ./borrarArchivosRecursivamente.pl .svn /home/javoaxian/proyecto
La salida sería algo como ésto:
Iniciando la eliminación del archivo/directorio: .svn en el directorio: proyecto
Archivo/Directorio eliminado: proyecto/.svn
Archivo/Directorio eliminado: proyecto/modulo2/.svn
Archivo/Directorio eliminado: proyecto/modulo1/.svn
Finalizando la eliminación del Archivo/Directorio: .svn
Archivo/Directorio eliminado: proyecto/.svn
Archivo/Directorio eliminado: proyecto/modulo2/.svn
Archivo/Directorio eliminado: proyecto/modulo1/.svn
Finalizando la eliminación del Archivo/Directorio: .svn
Espero que les pueda servir.
Fue muy util tu script, funciono a la perfeccion, agradezco tu colaboracion.
ResponderEliminarDe nada, fue un placer que te haya sido de utilidad.
ResponderEliminarPues muy util tambien para mí, pues me he quedado un poco alucinado que el rm no funcione recursivamente como debería hacerlo.
ResponderEliminarUn apunte a tu script: si quereis que borre en directorios que contengan espacios tienes que modificar la siguiente linea así:
`rm -rf "$dir"`;
Que bueno que te fue de utilidad.
ResponderEliminarGracias por tu observación, ya agregué el cambio que sugieres al script.
Saludos!!!
gracias loco me salvast la vida, :D
ResponderEliminaranduvo muy bien
Grossoooo!!..me salvaste..muy buen script
ResponderEliminarBuenísimo el script
ResponderEliminar