diff --git a/qcd_function b/qcd_function index 2a86b44..7c9ee3a 100644 --- a/qcd_function +++ b/qcd_function @@ -157,4 +157,25 @@ function whenfilechanges() { } - +function gcd() { +# guess cd, find first match in folder + local dname + local bname + local match + set -o pipefail + dname=$( dirname "$1" ) + bname=$( basename "$1" ) + match=$( ls "$dname" | grep "$bname" | head -n 1 ) + [[ ! "$match" = "" ]] && { + echo $match | grep --color=always "$bname" + \cd "$match" + return + } + match=$( ls "$dname" | grep -i "$bname" | head -n 1 ) + [[ ! "$match" = "" ]] && { + echo $match | grep -i --color=always "$bname" + \cd "$match" + return + } + echo No match. +}