Created
June 16, 2009 01:30
-
-
Save mbadran/130469 to your computer and use it in GitHub Desktop.
replace cd in bash to (silent) pushd
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alias cd="pushd $@ > /dev/null" |
and one more note to catch up especially for mr. @keltroth and mr. @3v1n0
as it caught my eye, you both till the last revision leave $OLDPWD
value unescaped, and it's quite dangerous, 'cause if the previous dir will include spaces in name - with cd -
one will definitely fail to return. and since everything in this routine is silenced with /dev/null
, it would be an adventure to find out what a hell is going on. been there, seen that
I've been fond of tuning little things of that kind a lot, it's very exciting sometimes
the last for today - three more functions on topic from my own regular set of /etc/bash.functions
pushd () {
builtin pushd ${1} >/dev/null 2>&1
}
popd () {
builtin popd ${1} >/dev/null 2>&1
}
dirs () {
builtin dirs -v
}
respect, guys!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
brilliant thread, guys!
the last revision by @3v1n0 - it's true oldschool hell of shell programming, applause! ππ₯π
close to ideal, except one missing thing, the last one that matters - the special behaviour of
cd -P
description from
cd --help
of bash builtinresolve symbolic links in DIR before processing instances of `..'
it's a pity, since I find this behaviour very useful for both interactive and scripted scenarios, and advise
-P
everyone - it even worth to be mentioned asalias cd='cd -P'
at /etc/profilehowever, as I see from your experiments above, one can try to mimic native
cd -P
behaviour like this -pushd "$(realpath "$1")"
(nb! not tested)if one implements this update during a week, that would be great! and I'll try to do it myself on weekends if not