Parece que quando o arecord recebe um SIGINT, ele fica chateado e cria milhares de arquivos. (Isso vai acontecer se você Ctrl-C, enquanto ele está gravando.) Não tenho certeza de como "consertar" (eu classificaria como bug, de qualquer forma), mas vou oferecer duas soluções alternativas:
-
Não SIGINT, apenas SIGKILL (
killall -KILL arecord
) -
Para evitar que milhares de arquivos sejam criados, faça o seguinte:
arecord - > /tmp/sample.wav 2> /dev/null
Agora, em vez de produzir sample-1.wav, sample-2.wav, etc, arecord envia todos os seus dados para STDOUT, que você redireciona para um arquivo de seu escolha. As mensagens são impressas no STDERR, que é redirecionado para / dev / null neste caso. A desvantagem é que, em vez de milhares de arquivos sendo criados, esse arquivo único ficará muito grande - que pode ou não ser considerado como uma melhoria!
Como presente de bónus; já que o clássico " rm /tmp/sample*.wav
" é provável
reportar "muitos arquivos"; aqui está como limpar a bagunça (ajuste como
apropriado):
find /tmp -type f -name sample*.wav -exec rm {} \+
Apenas para o registro:
$ arecord --version
arecord version 1.0.27 by Jaroslav Kysela <[email protected]>