Supondo que você esteja executando o Linux, você deseja ordenar aleatoriamente todos os arquivos no diretório atual e que nenhum nome de arquivo contenha uma nova linha:
printf '%s\n' * | shuf | nl -n rz -s - |
while IFS= read -r name; do
mv -- "${name#*-}" "$name"
done
O comando printf
imprime os nomes dos arquivos, um por linha. shuf
aplica uma permutação aleatória às linhas de entrada. nl
adiciona prefixos como 000001-
, 000002-
, etc. a cada linha. O loop while
itera em todas as linhas. O comando mv
renomeia foo.mp3
para 000001-foo.mp3
, etc.