Як за допомогою однієї команди зібрати всі файли з вкладених папок в одному місці, простоmac
В процесі роботи за комп'ютером у користувачів скупчуються великі обсяги файлів і папок, що утворюють складну вкладену ієрархію. Багато хто любить розкладати все по поличках, створюючи директорії і вкладені піддиректорії, але одного разу може виникнути необхідність ліквідувати цю складну структуру. У середовищі OS X це швидше за все можна зробити за допомогою командного рядка.

Причин у такого дії може бути досить багато. Можливо, вам необхідно зібрати файли з усіх вкладених папок в єдину директорію, а можливо прийшов час позбутися від зайвих директорій. Так чи інакше, ми розглядаємо метод допоможе перемістити всі вкладені файли в одну папку.
Для наочності ми створили приклад такої структури. Загальна папка називається TestDirectory. Вона в свою чергу містить вкладені папки з назвами SubDirectory1, SubDirectory2 і SubDirectory3. Кожна піддиректорія містить перелік вкладених файлів. Наше завдання - перемістити всі файли в кореневу папку TestDirectory.
Зараз структура виглядає наступним чином:
/ TestDirectory / -type f
Для здійснення нашої задачі необхідно в Терміналі використовувати команду:
find TargetDirectory / -mindepth 2 -type f -exec mv -i '<>'TargetDirectory /'; '
Після того, як система виконає всі необхідні дії, структура каталогу буде наступною:
Зверніть увагу на те, що дана команда не видаляє піддиректорії. Вони просто виявляються порожніми. Можливо, вкладені папки можуть стати в нагоді вам в майбутньому. В іншому випадку їх можна видалити вручну.
Команда, яку ми використовуємо, має такий синтаксис:
find [DIRECTORY] -mindepth 2 -type f -exec mv -i '<>'[DIRECTORY]'; '
Важливо знати, що параметр DIRECTORY повторюється в ній двічі і не завжди він є одним і тим же. Перша згадка директорії - це той каталог, який містить вкладені файли і папки. Друге - це те місце, куди будуть переміщені всі виявлені файли. Тому не завжди коренева папка буде тим місцем, куди будуть складені файли.

Нагадуємо, що переміщення файлів подібним чином є незворотнім. Немає такої команди, яка поверне всі файли назад в папки. Єдиний варіант, це розподіляти їх вручну, що при великих обсягах файлів може бути проблематичним.