У меня есть такая структура файла:
- 00000010
- 000000001.file1
- 000000001.file2
- 00000020
- 00000003.file1
- 00000003.file2
- 00000003.file3
- ...
Таким образом, есть папки с 8-значными именами, содержащими один или несколько файлов, имена которых начинаются с 8-значных чисел. Но эти имена файлов - скажем так - не синхронизированы. Итак, теперь я пытаюсь рекурсивно переименовать их в bash для архивирования:
- 00000010
- 000000010.file1
- 000000010.file2
- 00000020
- 00000020.file1
- 00000020.file2
- 00000020.file3
- ...
Мой сценарий выглядит так:
#! /bin/bash
find * -maxdepth 1 -name "*" -type d | while read -r dir
do
rename 's/$dir\/[0-9]{8}/$dir/' *
done
Но это не работает и дает такие ошибки, как
Глобальный символ "$ dir" требует явного имени пакета в (eval 1) строке 1.
Как я мог написать это, чтобы переименовать файлы в соответствии с именами их папок?
Спасибо за помощь!