The other day I posted one of my old (from 16 years ago) blog entries on twitter, Backtracking with Bash which shows a cool trick you can use to go to the directory you were previously in using
cd ~- for example:
$ cd /var $ cd /etc $ cd ~- $ pwd /var
Ryan Guill pointed out that
cd - also works, so what is the difference between
cd ~- and
$ cd /var $ cd /etc $ cd - /var $ pwd /var
So what is the difference?
The biggest difference between
cd ~- and
cd - is that
~- can be used in any command because it is part of the shells tilde expansion. The
- shortcut can only be used with the
So for example if your directory was previously
/var/log/apache2 and you want to tail the access_log file in there you can just
$ cd /var/log/apache2 $ cd /etc $ tail ~-/access_log It Works... $ tail -/access_log tail: illegal option -- /
The second difference is that
cd - will print the directory it changed to out to standard output, and
cd ~- just changes directories without printing anything.
Cool trick eh?
Top comments (6)
You can also do
git checkout -to switch to the previous branch. I use that one all the time.
Nice tip, thanks!
so can you use either cd or git checkout and they will both enable you to move into the desired branch?
cd -will change to the previous directory and
git checkout -or
git switch -will change to the previous branch.
TIL. That's pretty sweet-o neat-o.
Cool, didn't know about this one. And nicely explained with examples.