Os comandos ls e dir no ftp destinam-se a ter um diretório remoto como um primeiro parâmetro, não um nome de arquivo - fazer isso com um nome de arquivo pode ou não funcionar, dependendo do servidor ftp. A sintaxe é:
ls [remote-dir] [local-file]
- Se nenhum parâmetro for passado, o diretório atual será listado.
- Se um parâmetro for passado, ele será considerado um diretório e será listado
- Se o segundo parâmetro for passado, será um arquivo local e a saída será enviada para isso.
- Se o segundo parâmetro for omitido ou for um hífen, a saída será enviada para o terminal
Ter um hífen imediatamente após a parte 'ls' com algo a seguir não é um comando válido, portanto, quem sabe o que ele fará. Como está especificando um nome de arquivo como o primeiro parâmetro. Deve ser apenas um nome de diretório remoto.