Возможно, вам придется сделать это с Cygwin, который я бы порекомендовал всем, кто (все еще ??) работает шпионское ПО M $ Windoze.
Нечто подобное должно работать. Запустите его в каталоге C:/Users/(Username)/Desktop/(Parent-Collection name)/ (которое в cygwin будет называться /cygdrive/c/Users/(Username)/Desktop/(Parent-Collection name)/):
for i in `find . -name "*" -type f`;
do mv $i `echo $i | sed 's/.*\/\([^/]*\)/\1/'`;
done
Это переместит все файлы во всех каталогах ниже (Parent-Collection name) в (Parent-Collection name) . В частности, это цикл do с индексом i проходящим по каждому файлу из текущего каталога и далее. Это то, что списки команд find . Вы можете посмотреть синтаксис, запустив man find . Затем выполняется перемещение (mv) этого файла ($i) в новое место. Это новое местоположение задается исходным именем файла (echo $i), которое запускается через потоковый редактор (sed , который вы можете посмотреть с помощью man sed), который настроен на удаление пути, оставляя базовое имя файла.
Я предлагаю протестировать его (создайте каталог с несколькими подкаталогами, содержащими несколько пустых текстовых файлов или что-то в этом роде) и убедитесь, что у вас есть резервная копия!
Затем вы можете удалить все (теперь пустые) каталоги ниже вашего текущего каталога:
for i in `find . -name "*" -type d`;
do rmdir $i;
done
Единственное, что здесь отличается, это то, что вы говорите find искать каталоги (-type d), а не файлы (-type f), а затем удаляете эти каталоги (rmdir , который работает только на пустых каталогах).
Разве Linux не крут? Cygwin дает вам некоторые возможности Linux и может стать первым шагом к тому, чтобы вам было достаточно комфортно с ним, чтобы однажды вы могли даже найти в себе возможность перейти на что-то вроде Ubuntu. :)