В моем тесте это сработало с указанными вами путями:
cd /var/www/photos
mv 2012 old
mv old/1007/1007 .
mv 1007 2012
Что происходит, вы пытаетесь переместить каталог поверх существующего каталога - и ему это не нравится, потому что в каталоге что-то есть. Если сначала переименовать 2012, вы сможете без проблем переместить его.
Я могу придумать как минимум два способа:
1: Сначала переименуйте / var / www / photos / 2012/1007 в / var / www / photos / 2012 / temppath , затем mv / var / www / photos / 2012 / temppath / 1007 -> / var / www / photos / 2012 /, затем rmdir /var/www/photos/2012/temppath.[1251 sizes2: Используйте простой скрипт для перемещения содержимого:
for f in `find /var/www/photos/2012/1007/1007 -mindepth 1`; do mv $f /var/www/photos/2012/1007/1007/../; done
Первый способ, вероятно, лучший ответ на ваш вопрос.