Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/06/2013, 09:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

No me había metido acá porque si bien la solución del 'ls -1rt|tail' es horrible (siempre se debe evitar usar la salida de "ls" en scripts, y casi siempre puede evitarse), parecía ser la más sencilla.

Pero buscar por fecha y luego hacer un grep es aberrante. Además de que si el archivo es de menos de 24 horas, no mostrará la fecha de hoy en la salida de ls.

Montes28, la diferencia en tu script es que el que tenías no incluía el "-l", por lo que solamente se listaban los archivos, no sus datos. Ahora te falla porque al script le llegan los datos también.

Te propongo una manera mejor de resolver esto.

1. encontramos todos los archivos de hoy, y a cada uno lo procesamos con mi_script.sh (la opción de find "-mtime" puede ser útil también, pero con esta tenemos más control)
Código BASH:
Ver original
  1. # obtenemos las 0:00 de hoy en un formato apropiado para 'touch'
  2. HOY=$(date "+%Y%m%d0000.00")
  3. # hacemos que la fecha de modificación de "marcador" sea la anterior
  4. touch -t $HOY marcador
  5. # encontramos los archivos más nuevos que $HOY
  6. find . -type f -newer marcador -exec mi_script.sh "{}" +
Luego, mi_script.sh puede ser:
Código BASH:
Ver original
  1. #!/bin/sh
  2. for arg; do
  3.     echo Tratando a $arg
  4.     mogrify -path ../small/ -resize 800x600 "$arg"
  5. done

Haciéndolo de esta manera, mi_script.sh te sirve independientemente de qué archivos quieras procesar luego, y no tenés que modificarlo si mañana decidís tomar los archivos de hace una semana en vez de los archivos de hoy.