26 lines
531 B
Text
26 lines
531 B
Text
|
# From https://stackoverflow.com/a/45336078
|
||
|
paths=(${(s:/:)PWD})
|
||
|
|
||
|
cur_path='/'
|
||
|
cur_short_path='/'
|
||
|
for directory in ${paths[@]}
|
||
|
do
|
||
|
cur_dir=''
|
||
|
for (( i=0; i<${#directory}; i++ )); do
|
||
|
cur_dir+="${directory:$i:1}"
|
||
|
matching=("$cur_path"/"$cur_dir"*/)
|
||
|
if [[ ${#matching[@]} -eq 1 ]]; then
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
cur_short_path+="$cur_dir/"
|
||
|
cur_path+="$directory/"
|
||
|
|
||
|
if [[ $cur_path == $HOME/ ]];
|
||
|
then cur_short_path='~/'
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
printf %b "${cur_short_path: : -1}"
|
||
|
echo
|