Re: Find en bash
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 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.comescribió: 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
Re: Find en bash
El 8 de junio de 2009 13:39, Carlos Martíneztro...@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
Re: Find en bash
El 8/06/09, 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\ echo $EXTENSIONES y muestra la salida find /home/ \( $EXTENSIONES \) = no funciona 3) EXTENSIONES=-iname \*.mp3\ -o -iname \*.avi\ echo $EXTENSIONES y muestra la salida find /home/ \( $EXTENSIONES \) = no funciona 4) EXTENSIONES=\*.mp3\ -o \*.avi\ echo $EXTENSIONES y muestra la salida 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 -- Ricardo A.Frydman Administrador Senior de Sistemas Unix Sun Certified System Administrator - Solaris 10 http://unix-argentina.blogspot.com/ http://www.warrenbuffet.com.ar -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Find en bash
Abilio Almeida Eiroa wrote: El 8 de junio de 2009 13:39, Carlos Martíneztro...@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). Estas dos líneas deberían ser correctas, tanto por que es lo que me dice mi intuición, como vosotros como expertos en Linux. Sin embargo, me lista todo el directorio /home obviando el filtrado. EXTENSIONES='\( -iname *.mp3 -o -iname *.mpg \)' find /home `EXTENSIONES` Ahora mismo ya tengo este tema como un reto personal y ver qué es lo que me está interpretando el bash. En todas las webs que he buscado, los resultados apuntan hacia aquí, pero a mi no me funciona. Y es que lo he probado en debian, ubuntu, y CentOS con el mismo resultado en todas ellas. Muchas gracias por vuestras respuestas. 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 -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Find en bash
Hola, soy nuevo en la lista y tengo miedo de meter la pata, pero a mí me funciona lo siguiente y quería compartirlo: #!/bin/bash variable=-iname *.jpg -o -iname *.pdf find /home/guille/ $variable Bueno, espero que te funcione, o al menos que te sirva de algo. No sé si es lo que buscabas, pero creo que está correcto. Saludos. On Sun, 7 Jun 2009, Carlos Martínez Fernández wrote: 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? Muchas gracias -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org -- Guillermo Indalecio Fernández Estudiante de Ciencias Físicas de la USC email: guillermo...@gmail.com
Re: Find en bash
Hola Guillermo, Guillermo Indalecio Fernández wrote: Hola, soy nuevo en la lista y tengo miedo de meter la pata, pero a mí me funciona lo siguiente y quería compartirlo: yo también soy nuevo, pero veo que la gente es muy amable y correcta. #!/bin/bash variable=-iname *.jpg -o -iname *.pdf find /home/guille/ $variable Bueno, espero que te funcione, o al menos que te sirva de algo. No sé si es lo que buscabas, pero creo que está correcto. Fantástico!!!. Esto es lo que buscaba, a pesar de que me quedo con la duda de por qué no hay que ponerlo entre paréntesis. Muchísimas gracias a todos por vuestros comentarios. Saludos. On Sun, 7 Jun 2009, Carlos Martínez Fernández wrote: 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? Muchas gracias -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Find en bash
El 8 de junio de 2009 20:32, Carlos Martínez Fernándeztro...@gmail.com escribió: Hola Guillermo, Guillermo Indalecio Fernández wrote: Hola, soy nuevo en la lista y tengo miedo de meter la pata, pero a mí me funciona lo siguiente y quería compartirlo: yo también soy nuevo, pero veo que la gente es muy amable y correcta. #!/bin/bash variable=-iname *.jpg -o -iname *.pdf find /home/guille/ $variable Bueno, espero que te funcione, o al menos que te sirva de algo. No sé si es lo que buscabas, pero creo que está correcto. Fantástico!!!. Esto es lo que buscaba, a pesar de que me quedo con la duda de por qué no hay que ponerlo entre paréntesis. Muchísimas gracias a todos por vuestros comentarios. Saludos. On Sun, 7 Jun 2009, Carlos Martínez Fernández wrote: 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? Muchas gracias Perdón por no responder esa forma, pensé que tratabas de buscar que te funcionara de la manera que proponías (aunque insisto que a mi me funcionaba bien, es decir, devolvían los mismo resultados, que no encontraban todos los .mp3 de los que dispongo) Saludos! -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org -- 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 signature.asc Description: OpenPGP digital signature
Find en bash
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? Muchas gracias -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Find en bash
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? si ponele comillas $EXTENSIONES Muchas gracias -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: Find en bash
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