C'è pushd
e popd
Bash manterrà una cronologia delle directory che visiti, devi solo chiedere. Bash memorizza la cronologia in uno stack e utilizza i comandi pushd e popd per gestire lo stack.
Altro da leggere
Esempio:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
Chiamando bash
avvia una nuova subshell, che ha il proprio input; nessuno degli altri comandi verrà eseguito finché non esce. Circondare i comandi da eseguire con le parentesi avvierà anche una nuova subshell, ma eseguirà i comandi al suo interno.
( cd dir ; ./dostuff )
Se non hai bisogno di più livelli di cronologia della directory, puoi anche fare:
cd foo
# do your stuff in foo
cd -
Rispetto a pushd
/popd
, questo ha lo svantaggio che if cd foo
fallisce, finisci nella directory sbagliata con cd -
.
(Probabilmente cd -
è più utile al di fuori degli script. "Torniamo dove ero appena stato.")