#!/usr/bin/bash # # Dolphin keeps old paths after modifications. # Run with '--do-it' to really make the change. # set -eu do="${1:-}" bmk=".local/share/user-places.xbel" rt="/srv/samba/schools/default-school/students" extract() { local grp="$1" grp="${grp##*${rt}/}" grp="${grp%%/*}" echo $grp } for f in $(find $rt/*/*/$bmk) ; do cor="$(extract $f)" for l in "$(grep "$rt" "$f")" ; do fnd="$(extract "$l")" if [[ "$cor" != "$fnd" ]] ; then echo "Check ${f##*${rt}/}: '$cor' != '$fnd'." if [[ "$do" = "--do-it" ]] ; then sed -i.lmn-fix-path "s|$rt/$fnd|$rt/$cor|g" "$f" break fi fi done done