Con bash, ¿hay alguna manera de empujar y hacer estallar el directorio de trabajo actual? Intenté escribir bash;cd dir; ./dostuff;exit;
pero el directorio actual es ahora dir
.
66
Hay pushd
ypopd
Bash mantendrá un historial de los directorios que visite, solo tiene que preguntar. Bash almacena el historial en una pila y usa los comandos pushd y popd para administrar la pila.
Ejemplo:
$ pwd; pushd /tmp; pwd; popd; pwd
/home/me
/tmp ~
/tmp
~
/home/me
pushd Saves the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories.
La llamada
bash
inicia una nueva subshell, que tiene su propia entrada; ninguno de los otros comandos se ejecutará hasta que salga. Rodeando los comandos que se ejecutarán con parens también se iniciará una nueva subshell, pero ejecutará los comandos dentro de ella.fuente
Si no necesita múltiples niveles de historial de directorio, también puede hacer:
En comparación con
pushd
/popd
, esto tiene la desventaja de que sicd foo
falla, termina en el directorio incorrecto concd -
.(Probablemente
cd -
sea más útil fuera de los guiones. "Volvamos a donde estaba").fuente
Utilizo el alias para realizar un seguimiento de los cambios de mi directorio, así que para 'cd' en algún lugar puedo volver a donde estaba usando 'cd.', O regresar dos usando 'cd ..', etc.
fuente
..cd
lo suficientemente robusto? parece que solo elimina los últimos 10 elementos de la pila.