Using cdargs in Cygwin
The cdargs utility is a very powerful directory bookmarking in *nix shells, including Cygwin. There are many wonderful pages on how to use and extend cdargs, some of which I reference at the end of this post.
Unfortunately, these pages talk about some utility functions (mark, cdb, cv, ca) that you get from sourcing cdargs-bash.sh - which I don't have in my copy of Cygwin. After reading man cdargs though, I found that the two most important functions were easy to create for myself: mark to create a cdargs bookmark and cdb to cd into the directory referenced by the bookmark.
Put these in your .bashrc or .bash_profile.
# cd to a cdargs bookmark.
function mark() {
if [ $# -ne 1 ] ; then
echo Usage: mark cdargs-bookmark-name
return 2
fi
cdargs --add=:$1:` cygpath -u -a .`
}
# Create a bookmarks in cdargs for the current directory.
function cdb() {
if [ $# -ne 1 ] ; then
echo Usage: cdb cdargs-bookmark-name
return 2
fi
cdargs "$1" && cd "`cat "$HOME/.cdargsresult"`" ;
}
Using them is easy enough too. Use mark to create a cdargs entry (stored in the plain text file ~/.cdargs - which you can even edit with a text editor). Then use mark to go to (cd) a bookmarked directory. If you ever need to be reminded what your bookmarks are, look at the ~/.cdargs file or just run cdargs.
Example usage.
cd /c/really/long/path/that/is/hard/to/type/and/remember mark bigPath
Now you have bookmarked the directory against the key bigPath. To get back to that directory easily, use the command cdb bigPath.
The following pages have helped me learn more about how to use cdargs.
- CLI Magic: CDargs by Joe "Zonker" Brockmeier, 2005.
- Joe "Zonker" Brockmeier's updated cdargs tutorial: CDargs Brings Bookmarks to the Linux Command Line in 2010.
- From "Getting Started with BASH - A Bash Tutorial", the section on cdargs: CDargs - Shell Bookmarks.
- And, of course, the cdargs man page.