×
Воскресенье , 16 июня 2024
Домой / IOS / Как с помощью одной команды собрать все файлы из вложенных папок в одном месте

Как с помощью одной команды собрать все файлы из вложенных папок в одном месте

В процессе работы за компьютером у пользователей скапливаются большие объемы файлов и папок, образующих сложную вложенную иерархию. Многие любят раскладывать все по полочкам, создавая директории и вложенные поддиректории, но однажды может возникнуть необходимость ликвидировать эту сложную структуру. В среде OS X это быстрее всего можно сделать с помощью командной строки.

Как с помощью одной команды собрать все файлы из вложенных папок в одном месте

Как с помощью одной команды собрать все файлы из вложенных папок в одном месте

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

Для наглядности мы создали пример такой структуры. Общая папка называется TestDirectory. Она в свою очередь содержит вложенные папки с названиями SubDirectory1, SubDirectory2 и SubDirectory3. Каждая поддиректория содержит перечень вложенных файлов. Наша задача – переместить все файлы в корневую папку TestDirectory.

Сейчас структура выглядит следующим образом:

$ find ~/TestDirectory/ -type f
~/TestDirectory/rooty.jpg
~/TestDirectory/SampleDirectory1/beta-tool-preview.jpg
~/TestDirectory/SampleDirectory1/alphabeta-tool.jpg
~/TestDirectory/SampleDirectory2/test-tools.jpg
~/TestDirectory/SampleDirectory3/test-png.jpg
~/TestDirectory/SampleDirectory3/test1.jpg
~/TestDirectory/SampleDirectory3/test2.jpg

Для осуществления нашей задачи необходимо в Терминале использовать команду:

find TargetDirectory/ -mindepth 2 -type f -exec mv -i ‘{}’ TargetDirectory/ ‘;’

После того, как система выполнит все требуемые действия, структура каталога будет следующей:

~/TestDirectory/rooty.jpg
~/TestDirectory/beta-tool-preview.jpg
~/TestDirectory/alphabeta-tool.jpg
~/TestDirectory/test-tools.jpg
~/TestDirectory/test-png.jpg
~/TestDirectory/test1.jpg
~/TestDirectory/test2.jpg

Обратите внимание на то, что данная команда не удаляет поддиректории. Они просто оказываются пустыми. Возможно, вложенные папки могут пригодиться вам в будущем. В противном случае их можно удалить вручную.

Команда, которую мы используем, имеет такой синтаксис:

find [DIRECTORY] -mindepth 2 -type f -exec mv -i ‘{}’ [DIRECTORY] ‘;’

Важно знать, что параметр DIRECTORY повторяется в ней дважды и не всегда он является одним и тем же. Первое упоминание директории – это тот каталог, который содержит вложенные файлы и папки. Второе – это то место, куда будут перемещены все обнаруженные файлы. Поэтому не всегда корневая папка будет тем местом, куда будут сложены файлы.

Как с помощью одной команды собрать все файлы из вложенных папок в одном месте

Напоминаем, что перемещение файлов подобным образом необратимо. Нет такой команды, которая вернет все файлы обратно в подпапки. Единственный вариант, это распределять их вручную, что при больших объемах файлов может быть проблематичным.

источник

Проверьте также

Зарядные устройства Qi2 от Anker будут заряжать iPhone с мощностью 15 Вт

Вчера стало известно о том, что вместе с выходом iOS 17.2 в iPhone 13 и ...

Добавить комментарий