У меня есть структура папок, которая (плохо) поддерживается рядом автоматизированных заданий. Одним из побочных эффектов этих заданий является то, что они создают дублированные имена папок (и впоследствии дублирующие изображения).
У меня есть около 50 ГБ изображений, размещенных на этом сервере, и, по скромным подсчетам, по крайней мере 10% из них дублируется. Я нахожусь в процессе перехода на какую-то новую инфраструктуру и хотел бы дедуплицировать файлы и папки.
Учитывая структуру каталогов следующим образом
images/New_Site/Food
images/New_Site/Food/Content
images/New_Site/Food/Content/Content
images/New_Site/Food/Content/Waterfall
images/New_Site/Food/Food
images/New_Site/Food/Food/Content
images/New_Site/Food/Food/Recipes
images/New_Site/Food/Recipes
images/New_Site/Food/Recipes/Recipes
images/New_Site/Home
images/New_Site/Home/Home
images/New_Site/Kids
images/New_Site/Kids/Kids
images/New_Site/Men
images/New_Site/Men/Men
images/New_Site/New_Site
images/New_Site/New_Site/Baby
images/New_Site/New_Site/Beauty
images/New_Site/New_Site/Corporate
images/New_Site/New_Site/Corporate/About
images/New_Site/New_Site/Corporate/Careers
images/New_Site/New_Site/Corporate/Education
images/New_Site/New_Site/Corporate/Legal
images/New_Site/New_Site/Food
Я хочу создать сценарий, который будет копировать только следующие папки (без рекурсии)
images/New_Site/Food
images/New_Site/Food/Content
images/New_Site/Food/Content/Waterfall
images/New_Site/Food/Recipes
images/New_Site/Home
images/New_Site/Kids
images/New_Site/Men
В текущей дублированной структуре содержится более 2200 папок, поэтому очистка вручную не является эффективным повторяемым процессом.
Чтобы усложнить ситуацию, мне нужно перенести дедуплицированные элементы из AIX в среду Windows 2012 R2. Я могу использовать Putty SCP для копирования файлов между серверами или создать zip-архив (хотя на 50Gb, но не уверен, что архив является хорошей идеей).
Мой подход заключается в том, чтобы найти все папки, удалить любую папку, которая имеет повторяющееся имя, сразу после предыдущего, используя «/» в качестве разделителя. Логично, что я могу решить это, но не могу перевести это в какую-то команду grep. Любая помощь с благодарностью.