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

Scipt para copiar todos los JPG del sistema a una carpeta

Estas en el tema de Scipt para copiar todos los JPG del sistema a una carpeta en el foro de Unix / Linux en Foros del Web. Reciban un cordial saludo, realmente soy nuevo en esto de la programación Shell y se me plantea un problema práctico, sucede que en un equipo ...
  #1 (permalink)  
Antiguo 24/09/2012, 19:56
 
Fecha de Ingreso: junio-2006
Mensajes: 4
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Scipt para copiar todos los JPG del sistema a una carpeta

Reciban un cordial saludo, realmente soy nuevo en esto de la programación Shell y se me plantea un problema práctico, sucede que en un equipo con ubuntu se presume hay una fotografía (muy valiosa) para los padres del difunto dueño de la PC, pero no saben el nombre de la imagen ni su ubicación exacta en el sistema de archivos, solo se presume que puede ser en formato gráfico JPG, pienso que una solución para poder revisar todos los jpg que hay en el computador sería obviamente buscarlos, he hecho dicha búsqueda con el comando "find -name *.jgp" estando ubicado en el directorio raíz "/" y con permisos de root, obviamente me muestra en pantalla la ubicación de todos los archivos jpg en el equipo, para poder revisar dicha ubicación con mayor detenimiento le agregue a la orden al final "> archivosjpg.txt" para que guardara la búsqueda en el archivo "archivosjpg.txt" todo esto hasta acá va regularmente bien, pero el trabajo de revisar cada imagen es arduo sobre todo por tener que "navegar" a través de todo el sistema de archivos para ir visualizando cada imagen, luego pensé en poder hacer un script que combinara de alguna manera la orden anterior y que para cada resultado pudiera copiar la imagen en una carpeta específica y que si hay más de una imagen con el mismo nombre fuera renombrando la segunda, tercera,..., etc. para ello estuve buscando alguna información y encontré este pequeño fragmento de programación shell

for i in *
do
if [ -f $i ]
then
mv $i ./carpetadejpg
fi
done


que pienso me puede servir pero no sé cómo integrarlo con el anterior para conseguir el resultado deseado, agradecería cualquier idea o si alguien me puede enviar algún shell para probarlo. Gracias...
  #2 (permalink)  
Antiguo 24/09/2012, 23:40
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Scipt para copiar todos los JPG del sistema a una carpeta

Esto te copiara todas las imagenes a una carpeta nueva, aunque sin renombrar las que tengan nombres duplicados.

Código bash:
Ver original
  1. find / -name '*.jpg' -exec cp -p {} /ruta/a/la/carpeta/ \;

(No lo probe, pero creo así debería funcionar).
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 25/09/2012, 07:36
 
Fecha de Ingreso: octubre-2011
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: Scipt para copiar todos los JPG del sistema a una carpeta

Una vez estuve en esto y el mayor problema fue el de poder copiar archivos con el mismo nombre y en menor grado de dificultad con archivos de nombres compuestos, el siguiente script me resolvió el problema

#!/bin/bash

IFS=$'\x0A'$'\x0D'

ORIGEN=$1
EXT=$2
DEST=$3
for i in `find $ORIGEN -iname "*$EXT"`; do

if [ -f $DEST/`basename $i` ] ; then
echo "renombrando $i"
cp $i $DEST/`basename $i $EXT`_copia_$(date|awk '{print $4}'|sed 's/://g')$EXT && echo "copiado $i" >> registro.log
else
cp $i $DEST && echo "copiado $i" >> registro.log
fi
done

Para usarlo sigue esos pasos
Pones el Script en una carpeta
abrir terminal en esta carpeta
sh dejas un espacio, arrastra el script al terminal, escribe la ruta del directorio desde donde parte la búsqueda, dejas un espacio , escribe la extensión, dejas un espacio , escribe la ruta al directorio destino
pulsa enter
Nota: hay que poner el punto "." al poner la extensión.
Recomiendo en iniciar la búsqueda en /home y en /media , no creo que haya guardado archivos en / , que además está lleno de archivos .jpg que hacen al sistema y no son del usuariio

Última edición por EnriqueK; 25/09/2012 a las 08:09
  #4 (permalink)  
Antiguo 26/09/2012, 08:02
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Scipt para copiar todos los JPG del sistema a una carpeta

Código bash:
Ver original
  1. date|awk '{print $4}'|sed 's/://g'

¿De verdad no encontraste una forma mejor?

Código bash:
Ver original
  1. date +"%H%M%S"

Etiquetas: comando, ip, jpg, sistema, ubuntu, carpetas
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 08:02.