Carlos Moyano Cubillos escribió:

Hola,

> estoy enpezando en esto de la programacion en bash, y mi manera de
> aprender por lo general ha sido programando, asi es que decidi hacerme
> un scrip que me sirviera de algo

Heh, felicitaciones!  Me parece un buen espiritu.

> primero pretendo hacerlo con un determinado numero de canciones, luego
> con una  cantidad de canciones que cumplan un tamaño total 
> determinado (capacidad del pen)

El comando "stat" te puede ayudar a conocer los tamaños de los archivos
y el espacio libre en el pendrive.  La idea seria ir sumando los tamaños
a medida que escoges los archivos.  Obviamente escoger el ultimo archivo
va a ser mas dificil :-)  Una idea es ordenar la lista de archivos por
tamaño y luego quitar todos aquellos que sean mas grandes que la
capacidad que queda.

> esto ya lo tengo casi claro, todas las respuestas coinciden en lo
> mismo, el problema que tengo es para tratar los caracteres especiales
> y espacios...

Prueba con algo asi:

IFS="
"
arreglo_de_archivos=($(find /donde/estan/ -type f))

aca puedes usar ${arreglo[0]}, etc.

-- 
Alvaro Herrera                 http://www.amazon.com/gp/registry/DXLWNGRJD34J
"El día que dejes de cambiar dejarás de vivir"
From [EMAIL PROTECTED]  Sat Dec 10 19:17:26 2005
From: [EMAIL PROTECTED] (juan carlos castillo salazar)
Date: Sat Dec 10 20:11:58 2005
Subject: un problema antes de instalar soy novato
Message-ID: <[EMAIL PROTECTED]>

ola estoy interesado en el mundo linux, baje la version de red hat 9.0, son 3 
cd, el primero me bajo un archivo shrike-i386-disc1  ademas tiene un formato 
iso, lo queme con record now en uncd, y ahra cuando hago boot al cd, no 
reconoce nada, y me indica si reintento o finalizo,,,,,,este cd debe quemarce 
de una forma diferente o algo asi porque tiene tres tipos de sistemas de 
archivos
   
    
Microsoft Joliet se utiliza desde Windows 95. Este sistema puede manejar 
nombres de archivos de hasta 106 caracteres. 
    
Seleccione ISO+Joliet para crear un disco que pueda leerse en el mayor número 
de equipos posible. 
    
Utilice ISO Level 2 sólo si está familiarizado con este tipo de sistema de 
archivos. 
   
  por favor ayudenme, e

                        
---------------------------------
Yahoo! Shopping
 Find Great Deals on Holiday Gifts at Yahoo! Shopping 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: 
http://listas.inf.utfsm.cl/pipermail/linux/attachments/20051210/42f4825d/attachment.html
From [EMAIL PROTECTED]  Sat Dec 10 20:22:03 2005
From: [EMAIL PROTECTED] (Carlos Moyano Cubillos)
Date: Sat Dec 10 20:16:33 2005
Subject: seleccion de archivos de manera aleatoria en bash???
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

El 9/12/05, Alvaro Herrera<[EMAIL PROTECTED]>
>
> Una idea seria que en lugar de generar la lista con find, usaras
> ls -RQ, o sea
>
> lista=($(ls -RQ /donde/esta/))
>
> Eso le pone comillas a cada item, no se si bash sera suficientemente
> inteligente como para interpretarlo correctamente.  El problema es que
> no apareceran solo los archivos en la lista sino tambien los
> directorios ...

estube probando con tu idea y sip, funciona, al darle el nombre
completo, a "cp" por ejemplo,  me copia correctamente el archivo.

ahora, ls -RQ me muestra todo, y me di cuenta que  en los directorios
no existen solamente mp3, hay caratulas de los discos, algunos extras,
etc.
asi ke mejor seria algo asi

ls -RQ /mnt/respaldo/musica | grep .mp3

esto funciona bien, pero el problema es ke necesito toda la direccion
del archivo para copiarlo ya que algunos estan en subdirectorios de
musica.


Alvaro Herrera <[EMAIL PROTECTED]> escribio :
>El comando "stat" te puede ayudar a conocer los tamaños de los archivos
>y el espacio libre en el pendrive.  La idea seria ir sumando los tamaños
>a medida que escoges los archivos.  Obviamente escoger el ultimo archivo
>va a ser mas dificil :-)  Una idea es ordenar la lista de archivos por
>tamaño y luego quitar todos aquellos que sean mas grandes que la
>capacidad que queda.


pensando en esto se me ocurrio usar "du" de esta manera

du -ah /mnt/respaldo/musica/ | grep .mp3
(puede ser sin h, asi evito ka "M" despues del tamaño, pero se me hace
mas comprensible asi...)

esto me da una salida de este tipo:
4,2M    /mnt/respaldo/musica/Yngwie Malmsteen - Canon In D (Mozart).mp3
...

que es justo la info que necesito para mi scrip, la dir del archivo y
su tamaño :D
pero de nuevo caigo en el problema de los caracteres especiales y espacios.


preguntas:

como hago para ponerle las comillas a las direcciones??
como hago para guardar aparte el tamaño??

ser me ocurre usar una matris de nx2...

ahora solo topo en eso, el cuento de la seleccion de archivos sin
repetir no creo ke cueste mucho, ya entendi como genero los numeros
aleatorios para usarlos de incdices en el arreglo. Creo que  logrando
separar el tamaño y poniendole las comillas a la direccion completa
estaria llegar y rpogramar :D


gracias a todo el mundo nuevamente


salu2,
--
C.M.C.

Responder a