iconv
é o padrão para enviar sua saída para stdout, o que explica o comportamento do que você viu. Você pode direcionar a saída para um arquivo usando a opção -o
, mas isso gerará apenas um único arquivo de saída e provavelmente não ajudará a atualizar os arquivos no lugar. Talvez tente algo assim:
for file in *.sql; do
iconv -f ISO-8859-1 -t UTF-8 -o "$file".utf "$file" && mv "$file".utf "$file"
done
Isso converterá cada arquivo e armazenará o resultado em um arquivo temporário, movendo-o para o nome do arquivo original se a conversão foi bem-sucedida.