Copia uma seleção aleatória de arquivos

4

Eu tenho um som do carro que não toca todos os meus mp3s (5k arquivos totalizando > 32GB). Provavelmente há algum tipo de problema de análise ou de sistema de arquivos, mas não consigo descobrir (não há saída de depuração que possa encontrar e pareço estar dentro das restrições de formatação especificadas pelo manual do usuário), por isso só reproduz artistas com [0-9A-C].* e alguns de D.* .

Eu só quero tocar todas as minhas músicas em "random all", então a próxima coisa que eu vou tentar é pegar um subconjunto aleatório da minha música e copiar para um pendrive, e repetir esse procedimento toda semana ou mês ou mais. Eu poderia fazer algo "simples" como

rm -rf /media/foo/*; find . -type f | shuf | head -1000 | while read line; do mkdir -p /media/foo/"${line%/*}"; rsync -av "$line" /media/foo/"$line"; done
, mas eu prefiro algo um pouco mais fácil de usar, já que não serei eu quem está executando este comando, e é claro que seria bom se os arquivos mantidos entre as execuções não precisassem ser apagados, copiado (minha primeira execução com esse comando levou 17 minutos). Existe alguma ferramenta ou processo melhor?

(A propósito, se você souber de um sistema pronto para uso que reproduz oggs, especialmente um que eu possa comprar de um varejista como Crutchfield com um kit de adaptadores para meu carro, eu ficaria muito interessado.)

    
por drewbenn 20.04.2016 / 08:09

1 resposta

0

Nenhuma mágica, mas você pode fazer isso para evitar a cópia dos arquivos que já estão lá:

Crie sua playlist no disco rígido primeiro (deve ser bastante rápido, especialmente se você tiver ssd):

$ rm -rf /tmp/playlist;  mkdir /tmp/playlist
$ find . -type f | shuf | head -1000 | tar -T - -cf - | (cd /tmp/playlist; tar -xvf -)

Em seguida, use o rsync para sincronizar o stick USB:

$ rsync -av --delete  /tmp/playlist /media/foo/

Com um pouco de udev hacking, você pode fazer isso automaticamente quando o usb stick é inserido, pré-gerar playlists toda semana para agilizar as coisas (crontab), exibir uma boa barra de progresso enquanto está acontecendo e pode até ser fácil de usar =)

    
por 20.04.2016 / 16:50

Tags