Editar:
Não estou claro se você está falando sobre cd --
ou cd -- -
. Então, vou tentar responder as duas perguntas.
cd --
(sem diretório) agirá da mesma forma que cd
(sem diretório). Você retornará ao seu diretório pessoal. cd --
não voltará para o diretório de trabalho anterior.
stefanl@host:~ $ cd tmp
stefanl@host:~/tmp $ cd --
stefanl@host:~ $ cd --
# Note that I do not go back to the directory ~/tmp
stefanl@host:~ $
Veja como esse comportamento é diferente de cd -
. Isso também é verdade para cd -- -
:
stefanl@host:~ $ cd tmp
stefanl@host:~/tmp $ cd -
/Users/stefanl
stefanl@host:~ $ cd -
/Users/stefanl/tmp
# 'cd -- -' behaves the same as 'cd -'
stefanl@host:~/tmp $ cd -- -
/Users/stefanl
stefanl@@host:~ $ cd -- -
/Users/stefanl/tmp
stefanl@host:~/tmp $
Em relação a --
para a maioria dos comandos Unix:
O --
dirá cd
para ignorar quaisquer opções após cd --
. Do Página do Bash Man :
Unless otherwise noted, each builtin command documented as accepting options preceded by ‘-’ accepts ‘--’ to signify the end of the options.
Finja que você tinha um diretório chamado -h
(observe que também preciso usar --
aqui):
$ ls -ld -- -h
drwxr-xr-x 2 stefanl stefanl 68 Nov 8 16:41 -h
Você não pode fazer o cd para isso normalmente, porque o comando tenta interpretar a -h
como uma opção:
$ cd -h
-bash: cd: -h: invalid option
cd: usage: cd [-L|-P] [dir]
Portanto, use o --
para informar ao cd para não processar mais opções após o --
:
stefanl@host:~ $ cd -- -h
stefanl@host:~/-h $ pwd
/Users/stefanl/-h
stefanl@host:~/-h $