El 8 de junio de 2009 13:39, Carlos Martínez<tro...@gmail.com> escribió: > Sigue sin funcionarme. Os copio exactamente todo lo que he probado por si se > os ocurre alguna otra alternativa > > 1) find /home/ \( -iname "*.mp3" -o -iname "*.avi" \) => esta funciona > > 2) EXTENSIONES="-iname \"*.mp3\" -o -iname \"*.avi\"" > find /home/ \( $EXTENSIONES \) => no funciona
A ver, a esto no le llames así: find /home/ \( $EXTENSIONES \) hazlo así: find /home/ `EXTENSIONES` (con las comillas de la tecla que está a la derecha de la P) (o lo mismo pero con el símbolo del dolar también, es lo mismo: find /home/ `$EXTENSIONES` , pero ponle las comillas esas). Así te tiene que devolver los mimo. Todo lo demás está mal, las posibles soluciones que también te devolverían los mismo casos pero no son correctas son: find /home/ "( $EXTENSIONES )" pero te saldría al final de todos los .mp3 devueltos lo siguiente: find: `( -iname "*.mp3" -o -iname "*.avi" )': Non hay tal fichero o directorio (por que evalúa eso como nombre también) o: find /home "( `EXTENSIONES` )" pero te devolvía todos los resultados y: find: `( )': Non hay tal fichero o directorio (evaluando eso otra vez como parte del iname) Aunque yo lo haría como dije en el anterior mail que me acabo de dar cuenta que no lo envié a la lista que lo envié a Ángel al darle a responder (perdón Ángel) (jod** con Gmail!!), lo pego aquí ahora: ==== Copy paste del mail anterior ==== Yo haría algo así: Si con esto (find /path/to/find \( -iname "*.mp3*" -o -iname "*.mpg" \)) te encuentra algo, lo mismo te tendría que encontrar con esto: EXTENSIONES='\( -iname "*.mp3*" -o -iname "*.mpg" \)' find /path/to/find `EXTENSIONES` (no con $EXTENSIONES) ==== Fin copy paste de mail anterior ==== Lo siguiente que pusiste (opciones 3 y 4, ni las barajes por que te vas a acabar liando, aunque funcionarían de las misma manera si llamaras al comando con las comillas que te digo, de la misma manera (CONCLUSIÓN: el error está en como llamas después de establecer la variable a find, forma correcta esta: find /home/ `EXTENSIONES` o esta: find /home/ `$EXTENSIONES`, todas las demás asignaciones de las variables e valdrían). Espero que no te líe todo esto, ponle atención que es fácil liarse con la parrafada que te acabo de soltar. Saludos. > > 3) EXTENSIONES="-iname \"*.mp3\" -o -iname \"*.avi\"" > find /home/ \( "$EXTENSIONES" \) => no funciona > > 4) EXTENSIONES="\"*.mp3\" -o \"*.avi\"" > find /home/ -iname \( $EXTENSIONES \) => no > funciona > > Y quería eviar el bucle porque creo que es más elegante y es que sólo es > cuestión de sustituir una cadena por una variable. > > ¿Estoy haciendo algo mal? > > Muchas gracias > > > El 7 de junio de 2009 23:41, Angel Claudio Alvarez <dus.an...@gmail.com> > escribió: >> >> El dom, 07-06-2009 a las 10:23 +0200, Carlos Martínez Fernández >> escribió: >> > Hola a t...@s, >> > >> > >> > Tengo un script para calcular la ocupación de contenido multimedia por >> > cada usuario. El problema lo tengo al utilizar el comando find para >> > buscar los ficheros .mp3, .mpeg, .mpg, .avi, etc. etc. >> > >> > Si ejecuto el comando tal como: >> > >> > find /path/to/find \( -iname "*.mp3*" -o -iname "*.mpg" \) >> > >> > ahora bien, si creo una variable con las extensiones tal como: >> > >> > EXTENSIONES="-iname \"*.mp3*\" -o -iname \"*.mpg\"" >> > find /path/to/find \( $EXTENSIONES \) >> > >> > ahora el comando find no me encuentra nada. >> > >> > ¿Alguna sugerencia? >> > >> Perdon me olvide de decirte que tenes que sacar el parametro iname de la >> variable >> >> > >> > Muchas gracias >> > >> > >> >> >> -- >> To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org >> with a subject of "unsubscribe". Trouble? Contact >> listmas...@lists.debian.org >> > > -- aabilio - http://linfox.es http://expulsionporagresion.linfox.es GPG id C7B08605 Abilio Almeida Eiroa (aabilio) SIP: aabi...@ekiga.net -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org