Good use for pushd / popd / dirs

These days I'm often working with Yocto.  A peculiar thing about
Yocto is the ridiculous amount of directories it spawns, and high
number of places in the file-system where to modify scripts or
look at generated data.

Using 'cd' to jump from one directory to the other can be quite
slow.  A possible solution could be using environment variables,
e.g.

   path1=/path/to/place/1
   path2=/where/to/find/another/place
   ...
   cd $path1
   ...
   cd $path2

A more 'casual' approach could consist in making good use of the
pushd/popd/dirs built-ins (bash).

Example shell session:

   $ cd "$(mktemp -d)"
   $ mkdir -p ./foo/bar/baz ./lol/ ./path/to/this ./path/to/that
   $ dirs
    0  /tmp/tmp.NMiIJ8GVmY
   $ pushd ./foo/bar/baz/
   /tmp/tmp.NMiIJ8GVmY/foo/bar/baz /tmp/tmp.NMiIJ8GVmY
   $ dirs
    0  /tmp/tmp.NMiIJ8GVmY/foo/bar/baz
    1  /tmp/tmp.NMiIJ8GVmY
   $ pushd +1
   /tmp/tmp.NMiIJ8GVmY /tmp/tmp.NMiIJ8GVmY/foo/bar/baz
   $ pushd ./path/to/this/
   /tmp/tmp.NMiIJ8GVmY/path/to/this /tmp/tmp.NMiIJ8GVmY /tmp/tmp.NMiIJ8GVmY/foo/bar/baz
   $ dirs
    0  /tmp/tmp.NMiIJ8GVmY/path/to/this
    1  /tmp/tmp.NMiIJ8GVmY
    2  /tmp/tmp.NMiIJ8GVmY/foo/bar/baz
   $ pushd +1
   /tmp/tmp.NMiIJ8GVmY /tmp/tmp.NMiIJ8GVmY/foo/bar/baz /tmp/tmp.NMiIJ8GVmY/path/to/this
   $ pushd ./
   foo/  lol/  path/
   $ pushd ./path/to/that/
   /tmp/tmp.NMiIJ8GVmY/path/to/that /tmp/tmp.NMiIJ8GVmY /tmp/tmp.NMiIJ8GVmY/foo/bar/baz
   /tmp/tmp.NMiIJ8GVmY/path/to/this
   $ dirs
    0  /tmp/tmp.NMiIJ8GVmY/path/to/that
    1  /tmp/tmp.NMiIJ8GVmY
    2  /tmp/tmp.NMiIJ8GVmY/foo/bar/baz
    3  /tmp/tmp.NMiIJ8GVmY/path/to/this