Yesterday I posted one of my old (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 -
?
$ 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 cd
command.
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 tail ~-/access_log
$ 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.
Comments
Very nice, Pete. Thanks.