25 lines
531 B
Text
25 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
|