blob: 0f1eba24b49fa21bb4c7c07dbb074bd84595263e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# If given two arguments to cd, replace the first with the second in $PWD,
# emulating a Zsh function that I often find useful; preserves options too
cd() {
local opt opts OPTIND=0
while getopts elP opt; do
opts[${#opts[@]}]=-$opt
done
shift $((OPTIND-1))
if (($# == 2)); then
if [[ $PWD == *"$1"* ]]; then
builtin cd "${opts[@]}" "${PWD/$1/$2}"
else
printf %s 'bash: cd: could not replace substring\n' >&2
return 1
fi
else
builtin cd "${opts[@]}" "$@"
fi
}
|