O pushd sempre envia o diretório atual?

1
$ pwd
/tmp/d1
$ dirs
/tmp/d1
$ pushd ../d2
/tmp/d2 /tmp/d1
$ popd
/tmp/d1
$ pwd
/tmp/d1

Parece que pushd sempre envia o diretório atual, por exemplo /tmp/d1 na pilha, embora eu o execute como pushd ../d2 ?

Observe que: link

The first directory of the dir command output is always the current directory and not the content from the stack.

    
por Tim 11.10.2014 / 23:45

2 respostas

2

Nenhum pushd nem sempre envia o diretório atual. De bash ' man page:

   pushd [-n] [+n] [-n]
   pushd [-n] [dir]
          Adds  a directory to the top of the directory stack, or rotates
          the stack, making the new top of the stack the current  working
          directory.   With  no arguments, exchanges the top two directo‐
          ries and returns 0, unless the directory stack is empty.
          .
          .
          dir    Adds  dir  to  the directory stack at the top, making it
                 the new current working directory.

O formulário com um diretório pushd [dir] não está usando o diretório atualmente, a menos que esse diretório seja explicitamente usado como argumento. Fazendo pushd somedir

    
por 12.10.2014 / 00:00
0

Estou usando zsh e tem uma opção PUSHD_IGNORE_DUPS : "Não envie várias cópias do mesmo diretório para a pilha de diretórios." Talvez seja necessário verificar suas opções de shell (por zsh eu precisei de unsetopt pushdignoredups .)

    
por 30.03.2018 / 20:41

Tags