Algo parecido pode fazer o trabalho:
for i in 'find . -name link.txt -type f';
do
nn=$(sed -n -e 3p -e "s/title:\ // "$i")
mv "$i" "'dirname $i'/$nn"
done
Se você quiser renomear o último diretório no caminho em vez do arquivo, poderá usar algo como:
for i in 'find . -name link.txt -type f';
do
nn=$(sed -n -e 's/title: //' -e 3p $i)
odir='dirname $i'
ndir=$(echo $odir|awk -v nn="$nn" -F\/ 'BEGIN {OFS="/"} {$NF=nn;print}')
mv "$odir" "$ndir"
done