Я пытаюсь реструктурировать мои файлы в новые каталоги на основе имен файлов.Это делается с помощью GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
на OS X High Sierra
В настоящее время у меня есть родительский каталог, с 2 наборами подкаталогов, с более 100 подкаталогами, а затем набор изображений с именами файлов, которые распространены среди 3000или около того файлов, которые у меня есть.
Итак, Parent (dir) -> Подкатегории (dirs) -> Более глубокие подкатегории (dirs) -> Файлы
Все имена файлов очень похожи, то есть логин.png или splash.png и у меня, вероятно, только 40 уникальных имен файлов в 3000 файлах.Однако подкатегории уникальны.
Я пытаюсь рекурсивно скопировать все идентичные имена файлов (то есть все файлы login.png) в новую папку, но переименовать их все с произвольным уникальным идентификатором.Этот уникальный идентификатор не имеет значения вообще.Это может быть произвольное число или даже имя родительского каталога (например, login_subdirectoryname.png
)
Я пробовал несколько вещей, чтобы даже получить список всех доступных файлов:
Так что используя что-токак это, по крайней мере, показывает мне все доступные файлы:
find ./Parent -name "*.PNG" -type f -exec echo_name.sh basename {} \;
Где echo_name.sh
просто:
echo_name(){
echo $1
}
echo_name $1
Я создал функцию, потому что я предполагаю, что нам нужновыполните больше действий, например, проверьте папку, которая существует с именем «login» в новом каталоге, и, если она недоступна, создайте ее.
Так что мне нужно выполнить две вещи здесь...
A) Поддерживать некоторую уникальную переменную для подсчета в функции find
, которая передается в echo_name.sh
, поэтому каждое имя файла просто увеличивается на единицу (т. Е. login_1.png
), или добавление имени родительского каталога (т. е. login_thissubcategory. png
), чтобы избежать дублирования имен файлов при создании фактического cp
B) Определить, что такое строгое имя файла без расширения, ипуть, а также определить путь.Поэтому моя функция должна знать:
- . / Parent / subcategory / deeper_subcategory / login.PNG
- deeper_subcategory
- login
Я знаю, что это сложная реструктуризация, но любая помощь приветствуется.