Foros del Web » Administración de Sistemas » Unix / Linux »

[SOLUCIONADO] como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

Estas en el tema de como cambiarle el tamaño a las ultimas 10 imagenes de una directorio en el foro de Unix / Linux en Foros del Web. hola amigos espero me puedan ayudar , necesito cambiarle el tamaño a 10 imagenes de un directorio con este comando cambio el tamaño pero todas ...
  #1 (permalink)  
Antiguo 11/06/2013, 12:28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

hola amigos espero me puedan ayudar , necesito cambiarle el tamaño a 10 imagenes de un directorio

con este comando cambio el tamaño pero todas las imagenes del directorio
Código BASH:
Ver original
  1. mogrify -path ../small/ -resize 800x600 *.gif

y con el siguiente comando listo los ultimos 10 archivos creados en un directorio

Código BASH:
Ver original
  1. ls -rt| tail -10


como hago para que sea una sola instrucciòn , estoy trabajando en centos 6


o que me recomienda?

Última edición por Montes28; 11/06/2013 a las 12:35
  #2 (permalink)  
Antiguo 11/06/2013, 14:03
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

Hola Montes28.

Prueba con el siguiente script:

#!/bin/sh
ls -rt| tail -10 | while read FILE
do
echo Tratando a: ${FILE}
mogrify -path ../small/ -resize 800x600 ${FILE}
done
echo FIN

Espero que te sirva
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es
  #3 (permalink)  
Antiguo 12/06/2013, 19:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

zarwar gracias por responder funciono perfecto

podrías indicarme como hago para que este script se ejecute todos los días a determinada hora , hasta donde el leido tengo que utiliar crond-crontab pero apenas estoy empezando con linux y desconozco mucho

podrias guiarme un poco

gracias

Última edición por Montes28; 12/06/2013 a las 20:15
  #4 (permalink)  
Antiguo 13/06/2013, 02:25
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

Hola Montes28.

Te pongo un enlace de como poder hacerlo, porque es un poco extenso y se necesita algún ejemplo:
http://systemadmin.es/2010/03/como-p...as-con-el-cron

Un saludo
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es
  #5 (permalink)  
Antiguo 13/06/2013, 07:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

zarwar gracias por responder tengo una duda con el siguiente comando
Código BASH:
Ver original
  1. ls -rt| tail -10
listo los ultimos 10 archivos modificados o creados en un directorio , con que comando puedo ver lo ultimos archivos modificados o creados de un directorio?
  #6 (permalink)  
Antiguo 17/06/2013, 07:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

con el siguiente comando listo los archivos que tengan por fecha de modificación la fecha actual

Código BASH:
Ver original
  1. hoy=`date +"%b %_d"`;ls -l|grep "$hoy"

como lo integro al script que me facilito zarwar
Cita:
Prueba con el siguiente script:

#!/bin/sh
ls -rt| tail -10 | while read FILE
do
echo Tratando a: ${FILE}
mogrify -path ../small/ -resize 800x600 ${FILE}
done
echo FIN
inicialmente intente integrarlo asi

Código BASH:
Ver original
  1. hoy=`date +"%b %_d"`;ls -l|grep "$hoy" | while read FILE
  2. do
  3. echo Tratando a: ${FILE}
  4. mogrify -path ../small/ -resize 800x600 ${FILE}
  5. done
  6. echo FIN

pero obtengo el siguiente error
Tratando a: -rwxr--r-- 1 nobody nobody 407958 jun 17 01:01 TOLZ_2013_06_16_00_00.gif
mogrify: unrecognized option `-rwxr--r--' @ error/mogrify.c/MogrifyImageCommand/5577.


como integro los dos comando
  #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.
  #8 (permalink)  
Antiguo 17/06/2013, 09:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

AlvaroG gracias por responder , como recien comienzo con linux se me dificulta un poco realizar el script pero lo voy a intentar y tengo muchas ganas de aprender , voy a indicarte que voy a hacer y si estoy mal me corrigues por favor:

esta tarea la voy a programar en el crontab, pero dondo coloco lo que me indicas (osea que me toca crear un script para hacer esto?)
Cita:

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)

# obtenemos las 0:00 de hoy en un formato apropiado para 'touch'
HOY=$(date "+%Y%m%d0000.00")
# hacemos que la fecha de modificación de "marcador" sea la anterior
touch -t $HOY marcador
# encontramos los archivos más nuevos que $HOY
find . -type f -newer marcador -exec mi_script.sh "{}" +
  #9 (permalink)  
Antiguo 17/06/2013, 11:10
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

Si, en este caso deberías separar el proceso en dos scripts
  #10 (permalink)  
Antiguo 18/06/2013, 07:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como cambiarle el tamaño a las ultimas 10 imagenes de una directorio

AlvaroG gracias por tu ayuda tenias toda la razon me sirvio lo que me indicaste.

hice los dos script y coloque la tarea en el crontab

Etiquetas: directorio, imagenes, tamaño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:00.