Mover ou renomear um arquivo UNIX começando com um traço

Se acontecer de você criar ou renomear um sistema de arquivos UNIX para que comece com um travessão, você terá alguns problemas porque a maioria dos comandos ficará confusa e tentará interpretá-lo como uma opção opcional.

Eu tinha um arquivo chamado “-h” e estava recebendo erros como este:

mv -h something_else
mv
: illegal option -- h
usage
: mv [-f | -i | -n] [-v] source target
mv
[-f | -i | -n] [-v] source ... directory

A solução é muito simples, basta acrescentar “./” ao nome do arquivo para indicar que o arquivo está no diretório atual ou, alternativamente, usar o caminho completo ou um caminho relativo para o arquivo de forma que sintaticamente acabe sendo diferente de uma troca de comando e Você Terminou.

mv ./-h something_else

Funciona! 🙂