Один такой скрипт может выполнить работу:
for i in `ls`
do
a=$(grep $i names.txt|awk '{print $2})
mv "$i" "$a"
done
предположим, что в names.txt у вас есть формат
source_name target_name
Этот сценарий будет не очень надежным, если у вас есть имена, содержащие пробел или другие специальные символы.