How many times do you use the ls
and cd
commands on GNU/Linux systems? I imagine it is quite a lot.
I briefly mentioned my chpwd_auto_cd
Zsh function, which will auto run the ls
command when I cd
into a directory.
Sometimes it is also useful to auto run cd
.
A lot of the time when I create a new directory the first think I do is change into it, so I use this mkcd
function to combine the two commands
mkcd() {
mkdir -p "$1" && \
cd "$1"
}
Another common use of cd
is when I have cloned a Git repository. So I have combined these into gcl
gcl() {
git clone "${@}"
test -n "${2}" && _dir=${2} || _dir=${1##*/}
cd ${_dir%.git}
}
This function is a little more complex than mkcd
as (remote) Git repositories have a URL which we don’t want. I use the special variable $@
for the git clone
command so it captures if I specify where to clone the repo, e.g.
git clone git://git.pyratebeard.net/dotfiles.git /tmp/dotfiles
If there is a second variable I set the _dir
variable to it, otherwise I take everything after the final slash (/
) of the URL. For example, the repo URL git://git.pyratebeard.net/dotfiles.git would give me a variable of dotfiles.git
Then I can change to the new directory, ignoring .git
from the repo name if it exists.