Перемещение всех файлов из подкаталогов в основной каталог

Перемещение всех файлов из подкаталогов в основной каталог

У меня есть каталог под названием «public», содержащий тысячу подкаталогов, например:

public/63a/e9b/79a/file.pdf 
public/64a/2cd/184/other_file.pdf
...

Моя цель — переместить все файлы, содержащиеся в этих подкаталогах, в главный каталог (т.е. public).
Думаю, мне нужна рекурсивная функция, чтобы сделать это.
Может кто-нибудь мне помочь?

решение1

Инструмент, позволяющий это сделать, уже является частью стандартной среды Linux:

find public -type f -exec mv {} public/ \;

Объяснение:

Мы хотим, чтобы findфайлы, но не словари ( -type f) находились в publicи их подструктуре, и для каждого найденного файла выполнялась ( -exec) команда, которая переносит его (представленного {}) в общедоступный каталог.

Экранированная точка с запятой просто отмечает конец -execпоследовательности.

Связанный контент