Cómo cambiar el nombre de forma masiva en OS X con mis requisitos

5

¿Existe una utilidad que puede cambiar el nombre de los filtros en varias subcarpetas y luego cambiar el nombre de los archivos dentro de forma secuencial?

Por ejemplo, Selecciono my-pictures y hará su magia y renombrará secuencialmente todos los archivos en todas las subcarpetas. Para cada nueva subcarpeta, la numeración se restablece en 1.

estructura antigua

my-pictures (parent folder)
-- folder1
---- in-costa-rica.png
---- swimming-at-beach-costa-rica.png
-- panama-folder
---- panama-canal.png
---- with-witch-doctor.png

estructura deseada / nueva

my-pictures (parent folder)
-- folder1
---- 0001.png
---- 0002.png
-- panama-folder
---- 0001.png
---- 0002.png
    
pregunta mrjayviper 02.01.2014 - 09:14

2 respuestas

6

Las siguientes líneas en la Terminal deberían hacer el truco

for dir in my-pictures/*; do
    if [[ -d "$dir" ]]; then
        cd "$dir"
        i=0
        for file in *; do
            echo mv "$file" $(printf "%04d" $i).png
            (( i=i+1 ))
        done
        cd -
    fi
done

Puse una declaración echo para suprimir la ejecución para que pueda probarla primero. Si la salida se ve bien, simplemente elimine echo y vuelva a ejecutar.

Esto supone que no hay más de 1000 archivos en cada subcarpeta, que ninguno de los archivos ya está renombrado y que todos ellos son imágenes PNG.

Por defecto, los archivos están ordenados por nombre. Si desea ordenar por fecha, reemplace la segunda declaración for con

for file in $(ls -t); do
    
respondido por el nohillside 02.01.2014 - 09:48
0

Si puede hacerlo seleccionando las subcarpetas individuales, hay una aplicación para eso . Puede que no haga exactamente lo que desea, pero puede ahorrar mucho tiempo.

    
respondido por el Rish 02.01.2014 - 21:03

Lea otras preguntas en las etiquetas