Asignar nombres aleatorios a los archivos en Mac

Reemplazar los nombres de un grupo de fotos con nombres aleatorios en macOS

En ocasiones tenemos una carpeta con fotos nombradas de una determinada manera y queremos que se desordenen al azar. Una forma fácil de conseguirlo es generando para cada una de ellas un nombre aleatorio con la función rand_string en un script de bash.

Ejemplo: tenemos en el escritorio una carpeta llamada fotos con las imágenes cuyo nombre deseamos modificar de esta forma, Copiamos el texto siguiente a un editor de texto y lo guardamos como texto plano sin formato con la terminación .sh (archivo.sh reemplazando archivo por el nombre que desees).

#!/bin/bash

chars=( {a..z} {A..Z} {0..9} )

function rand_string {
    local c=$1 ret=
    while((c--)); do
        ret+=${chars[$((RANDOM%${#chars[@]}))]}
    done
    printf '%s\n' "$ret"
}

for file in ~/Desktop/fotos/*
do
    ext=$(echo ${file} | sed 's,^.*\(\.[^\.]*$\),\1,')
    mv "$file" ~/Desktop/fotos/"$(rand_string 10)"${ext}
done

Al ejecutar el script con doble clic veremos que las fotos de la carpeta de referencia han adoptado unos nombres aleatorios y su ordenación por nombre ha cambiado. El proceso se puede repetir varias veces para desordenar todavía más los archivos respecto al orden original.

Nota: cambia en el script con editor de texto la ruta ~/Desktop/fotos/ por la que estés utilizando (sale 2 veces).

Antes del script:

Después del script: