No Bash e em shells semelhantes, cd -
altera o diretório atual para um diretório visitado anteriormente. Muitas vezes é muito útil. Gostaria de saber se existe uma abreviação semelhante para copiar ou mover arquivos, como:
~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question
Eu também ficaria feliz com zsh
respostas específicas.
Responder1
Se o seu shell tiver cd -
, provavelmente terá a variável especial $OLDPWD
e/ou o atalho ~-
para o diretório em que você esteve anteriormente.
cp Makefile LICENSE "$OLDPWD/"
cp Makefile LICENSE ~-
cat ~-/Makefile
Na verdade, a linguagem shell POSIX (sobre a qual o ksh/bash/zsh é construído)especificaisso cd -
deve ser igual a cd "$OLDPWD"
.
Responder2
Você sempre pode usaraspas shell.
Eles agem como um subshell: o comando entre aspas é executado primeiro e sua saída é colocada como argumento do comando principal.
~/folderA$ cd ../folderB
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"