При неудачном восстановлении OneDrive у меня осталось много файлов и папок с суффиксом «(1)» или «(2)».
Я хотел бы сценарий (Bash хорошо, так как у меня есть MinGW + Cygwin или PowerShell), который будет анализировать все файлы и папки в данной папке (например, "d:\OneDrive" или "/cygdrive/d/OneDrive") и для Для каждого файла или папки проверьте, есть ли один или несколько файлов / папок (в одной и той же подпапке), имя файла или папки которых соответствует регулярному выражению "\1\s *\(\d +\)\.\2", где "\1. "является исходным именем файла / папки без расширения, а \2 является исходным расширением. Затем скрипт должен двоично сравнить исходный файл / папку с каждым из файлов / папок, найденных предыдущим регулярным выражением (рекурсивно в последнем случае), и, если они идентичны, он должен удалить копию (ту, которая имеет более длинное имя файла).
Хотя возможная базовая структура скрипта ясна (два вложенных в циклы, найти для поиска файлов, соответствующих регулярному выражению, diff для сравнения и т.д.) Я недостаточно знаком со сценариями Bash, чтобы удобно соединять части, и в любом случае вполне может быть более эффективная структура (что могло бы помочь, учитывая, что нужно пройти около полумиллиона файлов).