Usted debe ser capaz de hacer esto con un par de funciones de shell y un archivo temporal.
El archivo temporal se llamará algo así como '/home/me/.directory_stack
' y simplemente contener una lista de directorios:
/home/me
/etc
/var/log
Su función 'push_directory' simplemente agregar el directorio actual a la lista. La función 'pop_directory' sacaría el más reciente fuera de la lista y cambiaría a ese directorio. Almacenar la pila en un archivo como este asegura que la información exista en todos los terminales abiertos (e incluso entre reinicios).
Estas son algunas de las funciones de ejemplo (ADVERTENCIA: Sólo ligeramente probados)
directory_stack=/home/me/.directory_stack
function push_dir() {
echo $(pwd) >> $directory_stack
cd $1
}
function pop_dir() {
[ ! -s $directory_stack ] && return
newdir=$(sed -n '$p' $directory_stack)
sed -i -e '$d' $directory_stack
cd $newdir
}
añadir que a su .bashrc
y que automáticamente van a ser definidas cada vez que inicie sesión en la cáscara.
comandos Pushd y popd se BuiltIn comandos y la pila dir es mantenido por cada proceso shell. Sí, hay una manera de tener una pila global. De muchas maneras, de hecho. ¿Has intentado algo tú mismo? –