Eu tenho um diretório chamado:
-2
Quero entrar nele, mas o CD reclama:
bash: cd: -2: invalid option
Sem sucesso, tentei:
cd "-2"
cd '-2'
cd \-2
Qualquer solução?
Editar: não há navegadores de arquivos como mc, etc. disponíveis no servidor.
linux
command-line-interface
user151851
fonte
fonte
Respostas:
Pelo menos duas maneiras:
Use o
--
argumentoIsso usa uma convenção comum às ferramentas GNU, que é não tratar nada que aparece depois
--
como uma opção de linha de comando.Como comentador observou, esta convenção também é definida no padrão POSIX :
bem como :
Especifique o caminho explicitamente:
Isso especifica o caminho que nomeia explicitamente o diretório atual (
.
) como o ponto de partida.Essas são variações do que foi dito acima. Qualquer número dessas variações pode ser possível; Vou deixar como um exercício para o leitor descobrir todos eles.
fonte
cd
página "Ocd
utilitário deve estar em conformidade com ... seção 12.2"."hello world"
é um argumento, mashello world
é dois, e"-2"
é o mesmo que-2
.cd -- --
oucd ./--
deve funcionar.Isso deve funcionar:
- significa que não há mais opção
fonte
Isso funcionará se '-2' estiver no diretório atual.
Você pode concluir automaticamente digitando - e pressionando tab.
fonte
cd /home/...../-2 também funciona. Dê o caminho completo para acessar.
fonte
Apenas para complementar, se você deseja remover / excluir este diretório, pode usar o seguinte comando:
fonte
Eu sei que esta pergunta já foi respondida. Se alguém tem uma situação como a minha, é para eles:
Eu executei um aplicativo java e ele estava procurando um diretório começando por
<path>
, deveria substituí-lo pelo caminho adequado antes de executar o aplicativo. No entanto, eu esqueci de fazer isso. O aplicativo criou um diretório chamado<path>
.Eu tentei
cd <path>
- me deu o erro "-bash: erro de sintaxe perto de uma nova linha de token inesperada" Com base na sugestão aqui (eu entendo que é para o diretório que começa com - e não <) eu tenteicd -- <path>
. No entanto, eu recebi o mesmo erro.Quando eu tentei
cd \<path>\
- isso funcionou!Informações básicas:
Os símbolos "<" e ">" são usados para redirecionar STDIN e STDOUT; portanto, eles precisam ser escapados para que o shell não os interprete como redirecionamentos.
fonte