Seu código de shell tem dois problemas:
- O
echonão deveria estar lá. - A variável
$ié digitada incorretamente como$1no nome do arquivo de destino.
Para fazer uma cópia de um arquivo no mesmo diretório do arquivo, use
cp thefile thecopy
Se você inserir mais alguma coisa lá, por exemplo,
cp thefile theotherthing thecopy
presume-se que você gostaria de copiar thefile e theotherthing no diretório chamado thecopy .
No seu caso, ele procura especificamente por um arquivo chamado test.ogg e um chamado echo para copiar para o diretório test$1.ogg .
O $1 provavelmente será expandido para uma string vazia. É por isso que, quando você exclui o echo do comando, obtém "test.ogg e test.ogg são os mesmos arquivos"; o comando sendo executado é essencialmente
cp test.ogg test.ogg
Este é provavelmente um erro de digitação.
No final, você quer algo assim:
for i in {1..100}; do cp test.ogg "test$i.ogg"; done
Ou, como alternativa
i=0
while (( i++ < 100 )); do
cp test.ogg "test$i.ogg"
done
Ou usando tee :
tee test{1..100}.ogg >/dev/null <test.ogg