Uso:
cd ./-
Ou:
cd /absolute/path/leading/to/-
Ou melhor:
mv ./- something-sensible
cd something-sensible
O traço solitário é usado por muitos comandos para significar 'entrada padrão' ou 'saída padrão'. Alguns comandos podem ser persuadidos a levar um traço solitário à entrada padrão e outro à saída padrão em uma única chamada de comando: por exemplo, com o GNU Tar, tar -cf - -T - lê a lista de nomes de arquivos para arquivar a partir da entrada padrão ( -T - ) e grava o arquivo tar na saída padrão ( -f - ). Esses comandos nunca verificam se existe um arquivo real chamado - ; eles apenas comparam o nome com - e o tratam como o fluxo de E / S padrão apropriado. Você contorna o problema da mesma maneira: use um nome como ./- para especificar o arquivo.
Você também pode observar que um nome -- (traço duplo) também causa problemas porque o argumento de traço duplo é usado para separar opções dos argumentos de nome de arquivo (não-opção), como em:
rm -fr -- -
Isso removeria o arquivo ou diretório - , mas deixaria o arquivo (ou diretório) -- inalterado. Estude a especificação das Convenções de Utilidade POSIX do POSIX para ver onde esse comportamento é definido.