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
pyrenamer
funciona 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
find
comando encuentra archivos en orden 'directorio' (23.jpg
,66.jpg
, ...). podrías poner un|sort
despué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
rename
mando.O en puro
bash
y 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
-vn
interruptor (detallado - sin acción) después de la prueba, para que el cambio sea efectivo.fuente
rename
está vinculadoprename(1)
desde elperl
paquete 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