Як за допомогою однієї команди зібрати всі файли з вкладених папок в одному місці, простоmac

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

Як за допомогою однієї команди зібрати всі файли з вкладених папок в одному місці, простоmac

Причин у такого дії може бути досить багато. Можливо, вам необхідно зібрати файли з усіх вкладених папок в єдину директорію, а можливо прийшов час позбутися від зайвих директорій. Так чи інакше, ми розглядаємо метод допоможе перемістити всі вкладені файли в одну папку.

Для наочності ми створили приклад такої структури. Загальна папка називається 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 повторюється в ній двічі і не завжди він є одним і тим же. Перша згадка директорії - це той каталог, який містить вкладені файли і папки. Друге - це те місце, куди будуть переміщені всі виявлені файли. Тому не завжди коренева папка буде тим місцем, куди будуть складені файли.

Як за допомогою однієї команди зібрати всі файли з вкладених папок в одному місці, простоmac

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