PDA

Ver la Versión Completa : ¿Cómo renombrar archivos de una misma carpeta?



fabioonier
03-nov-2016, 18:15
Buenos días, compañeros.

Hace un tiempo vengo trabajando con OpenSuse 13.2 debido a que Windows (en todas sus versiones) se bloquea frecuentemente o se pone lento. Como todo buen migrante de Windows a GNU/Linux, he venido haciendo todo usando las interfaces gráficas.

Hace poco me dio por empezar a usar la terminal y me ha encantado porque simplifica muchos procesos y los ejecuta muy rápido.

En esta ocasión quisiera saber cómo puedo, vía terminal, hacer que todos los archivos de una misma carpeta puedan ser renombrados con un prefijo común seguido de una secuencia de números.

Esta necesidad la tengo debido a que me he estado dedicando a escanear libros (me construí un bookscanner con tubos de PVC) con la cámara fotográfica de mi teléfono móvil y, teniendo en cuenta que ésta graba las fotos usando la fecha y la hora de la fotografía, quisiera que los archivos tuvieran como prefijo unas letras que indiquen el título del libro, seguidas del número que indique la página.

Otra característica adicional: las fotos no fueron tomadas a todas las páginas de manera consecutiva sino en dos grupos: primero, las páginas impares y luego las páginas pares. Estos dos grupos de fotografías se encuentran en carpetas separadas, lo que significa que necesito que la secuencia numérica que iría después del prefijo común sean números impares y pares, respectivamente.

Se algunas cositas de programación, por lo que se me ocurre usar un contador que identifique la cantidad de archivos que hay dentro de la carpeta y use el índice del contador para asignar la secuencia numérica correcta: para la carpeta de las páginas impares del libro la secuencia debe ser 2*i-1 y en las pares 2*i, siendo i el índice del contador. Adicionalmente el número deber estar escrito con tres dígitos, es decir, el primer número debe ser 001 en lugar de 1. Esto lo aclaro porque si no se hace así, el orden en que aparecen los archivos será 1, 11, 12..., 111, 112... porque todos inician con 1.

Quisiera saber cómo hago un script que me automatice todo este proceso de tal manera que pueda ejecutarlo con cada nueva carpeta de fotos de cada nuevo libro escaneado.

Muchas gracias por su colaboración.

Feliz día.

victorhck
03-nov-2016, 19:20
Hola!

¿Utilizas Plasma? Si es así Dolphin tiene un renombrador masivo que puede hacer eso que mencionas. Abre una carpeta, seleccionas todos los elementos y pulsas F2.
Te dirá que cambiará el nombre de todos los elementos, con un nombre que introduzcas y una serie de números.

http://susepaste.org/images/34780476.png

sólo una idea!! :)

Sería interesante plantear un reto de cómo conseguir lo que pides! :)
Y ver cómo conseguirlo mediante un script.

Saludos.

mikrios
05-nov-2016, 02:32
Hola : @victorhck y comodidad.

Supongamos que ya re-nombre una serie masiva de fotos, y tengo la pantalla dividida, pues le toca otra vez descargar otra tanda, de fotos, pues veamos... vaya voy por la foto 89 pues aplico el renombrado masivo empezando por la 89 y continua la cosa.

Muchas gracias, creo que a muchos muchos le va a ser de utilidad.

http://paste.opensuse.org/images/26685243.png

Por mi parte requete-muchas gracias.


Saludos cordiales y muchas gracias, sabido esto antes no hubiese perdido fotos de la nikon-600 y nikon 810.

Saludos cordiales .

PD. Al nombre de esa montaña la que está por detrás se le llaman los pechos, por las dos parabólicas radomizadas con lonas rendondas, parecen 2 sostenes, no penséis mal:

karlggest
05-nov-2016, 13:51
Hola.

Como has preguntado "vía terminal", bien, cuando busques información recuerda que el intérprete de comandos que solemos usar es bash; si usas otro, es porque lo has instalado tú ;)

Así que la pregunta es cómo hacer esta tarea en bash. Hay un montón de formas. La más eviente usa un bucle for (similar al que puedes utilizar en programación).

http://www.linux-party.com/index.php/35-linux/8923-renombrar-multiples-ficheros-quitar-espacios-cambiar-mayusculas-a-la-vez-en-linux

Salud!!

mikrios
06-nov-2016, 23:28
Hola:

Muy bien explicado; algo así en español? (pero de bash, o de linux comando line) .

Saludos Cordiales