Este es mi problema: tengo una carpeta con 500 imágenes llamada:
1.jpg
2.jpg
3.jpg
y así..
Copié esa carpeta y ahora necesito cambiar el nombre de esas mismas imágenes de 501 a 1000, pero en este orden:
1.jpg becomes 501.jpg
2.jpg becomes 502.jpg
3.jpg becomes 503.jpg
....
Cuando uso mi comando de cambio de nombre estándar:
i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg && echo $i && ((i++)); done
Ordena imágenes de 501 a 1000 pero todas están dispersas:
23.jpg becomes 501.jpg,
66.jpg becomes 502.jpg
...
(están en el orden correcto, pero los mezcla)
Sé que es probable que me falte un comando ...
command-line
rename
batch-rename
Analgésico
fuente
fuente

Respuestas:
Pruebe Thunar , que es el administrador de archivos predeterminado para Xfce. Es muy liviano y viene con una práctica herramienta de cambio de nombre a granel. Puede instalar Thunar ejecutando el siguiente comando en la Terminal:
Probablemente también pueda instalar desde el software Ubuntu.
Cómo usar la utilidad
Además de la numeración, esta utilidad admite las siguientes acciones:
fuente
pyrenamerfunciona perfectamente y es lo que uso para cambiar el nombre de las literas cuando quiero que una GUI compare antes / después de la salida.El
findcomando encuentra archivos en orden 'directorio' (23.jpg,66.jpg, ...). podrías poner un|sortdespués del hallazgo.Pero sus métodos son demasiado complejos.
fuente
for i in {1..500}; do ...Habría sido más fácil.Con
renamemando.O en puro
bashy usando la expansión de parámetros de shell .fuente
Si he entendido bien lo que está preguntando, creo que puede hacerlo utilizando la herramienta predeterminada de cambio de nombre:
Debe quitar el
-vninterruptor (detallado - sin acción) después de la prueba, para que el cambio sea efectivo.fuente
renameestá vinculadoprename(1)desde elperlpaquete que no admite todas estas opciones de línea de comandos.'s/^(\d+)/sprintf("%d",$1+500)/e'. Actualizaré mi respuesta en consecuencia. Gracias.Otra forma de lograr esto con solo el comando shell
cuenta = 1; para i en
ls; do mv $ i CN $ ((count ++)). $ {i ## *.}; hechofuente