[Programación] Re: [Programación] Re: [Programació n] necesito ayuda para programar shell scri pts

Nicolás Aimetti programacion@lugro.org.ar
Mon, 08 Aug 2005 23:40:00 -0300


Es verdad, no menciona en ningún momento que deba de ser recursivo, pero 
como menciona el comando find, el cual por defecto actúa
recursivamente sobre los directorios, no es tan ilógico pensar que se 
quiere algo que sea recursivo.
Así que aquí hago mi aporte en cuanto a la recursividad:
Este script copia todos los archivos recursivamente a  un directorio 
destino, sin embargo no tiene en cuenta el tema de
la expresión regular (que se podría agregar cambiando un poco los 
parámetros que recibe el ls -1). La verdad no tengo idea de que es el 
Squeak shell y si esto andará usándolo, pero bueno, es mi pequeño aporte.

#!/bin/sh

f(){
for a in $(ls -1 $1)
do
    if [ ! -d $a ] ; then
        cp $1/$a $2
    else
        if [ -d $a ] ; then
            f $1/$a $2
        fi
    fi
done
}

if [ -z $1 ]; then
    echo "Usage: ./foo.pl <dest dir>"
    exit 1
fi

f . $1

Por lo general detesto tener que programar shell scripts (sobre todo 
existiendo lenguajes como perl), así que seguro este ejemplo no sea de 
lo más bello,
pero tenía ganas de hacer un poco de tiempo antes de irme a dormir.

Saludos,
             Nicolás.




Pablo wrote:

>Voy a contestar una barbaridad....
>
>Requisitos:
> -Buscar en un directorio determinado
> -archivos que respondan a una expresion regular (pasada como parámetro)
> -a otro directorio (pasado como parámetro)
>
>No es requisito:
> - Recursividad
> - ¿?
>
>Son 3 parametros.
>
>----------- cut micp.sh -------------------------------
>#/bin/sh
># uso: ./micp dir_origen tipo_archivo dir_destino
>#
>cp $1/$2 $3
>-----------------------------------------EOF---------
>
>Aca debe haber algo que no entendi..... seguro !!!!!!!!!!!!!
>
>Saludos. Pablo.
>
>
>----- Original Message -----
>From: "Emiliano Falabrini" <edfsoft@yahoo.com.ar>
>To: <programacion@lugro.org.ar>
>Sent: Monday, August 08, 2005 4:35 PM
>Subject: [Programación] necesito ayuda para programar shell scripts
>
>Hola a todos !
>tengo que programar un shell script que haga lo
>siguiente:
>Buscar en un directorio determinado (pasado como
>parámetro) archivos que respondan a una expresion
>regular (pasada como parámetro) Ej: "*.mp3" y los
>copie a otro directorio (pasado como parámetro).
>El script debe prescindir del comando find ya que este
>no funciona en la consola en que corro el script
>(Squeak shell).
>Me serviria de gran ayuda ejemplos de scripts
>parecidos u otra información del tema que puedan
>proporcionarme.
>Desde ya les agradesco.
>Salu2.
>
>_______________________________________________
>Programacion mailing list
>Programacion@lugro.org.ar
>http://www.lugro.org.ar/mailman/listinfo/programacion
>
>  
>