Возможно, вам придется сделать это с 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. :)