¿Cómo obtener un nombre de archivo aleatorio de un directorio y usarlo dentro de un comando?

¿Cómo obtener un nombre de archivo aleatorio de un directorio y usarlo dentro de un comando?

play ~/Music/audio0.flac repeat -

Un comando para reproducir un único archivo de audio específico una y otra vez.

play ~/Music/${random_audio_file} repeat -

Un pseudocomando para reproducir un singlearchivo de audio aleatorio del directorio dado ( ~/Music/), también en repetición.


¿Cómo hacer esto último como un comando de trabajo real?

Respuesta1

Puedes aprovechar el shufcomando para eso. Intentar:

play "$(find ~/Music -name '*.flac' | shuf -n 1)" repeat -

Las comillas dobles son necesarias en caso de que los nombres de sus archivos contengan espacios.

Respuesta2

Este comando obtendrá un .flacarchivo aleatorio y lo reproducirá usando omxplayer. Modifique el comando para adaptarlo a su reproductor.

find . -type f -name '*.flac' | shuf -n 1 | xargs -d "\n" omxplayer

información relacionada