30 votos

mv, cambiar el nombre si existe

Necesito montar un montón de imágenes en un directorio. Muchas de esas imágenes tienen los mismos nombres de archivo.

¿Hay alguna versión segura de mv que automáticamente cambiar el nombre de archivos, si el nombre de archivo de destino ya existe, de modo que pic1.jpeg convierte en algo parecido a pic1_2.jpeg?

Yo podría escribir mi propia secuencia de comandos de python pero tiene que ser algo como esto fuera allí, así que puede hacer:

find . -type f -name *.jpg -exec mvsafe '{}' /targetpath/ \;

47voto

MasterM Puntos 366

mv ya soporta esta fuera de la caja (al menos en Debian):

mv --backup=t <source_file> <dest_file>

Como se ve en mv(1) manual:

--backup[=CONTROL]
         make a backup of each existing destination file

The  backup  suffix  is  `~',  unless  set  with   --suffix   or   SIM‐
PLE_BACKUP_SUFFIX.   The version control method may be selected via the
--backup option or through the  VERSION_CONTROL  environment  variable.

En este caso, de la copia de seguridad=t significa numerada de copias de seguridad.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: