mv "$k" "${f%.*}.csv"
Como a variável f não está definida, a substituição completa não é uma string vazia, e o comando se torna mv "$k" ".csv" .
Todos, exceto um arquivo em cada diretório, foram perdidos. O último agora é chamado de .csv . Você provavelmente não percebeu porque o ponto no começo torna o arquivo oculto; use ls -a para ver esses arquivos. Os gerenciadores de arquivos da GUI geralmente têm uma opção para mostrar arquivos ocultos também.