Обратите внимание, что вся информация на этом портале переведена с других языков, поэтому некоторые фразы могут быть неточными. Надеемся на ваше понимание и желаем успешной работы с сайтом! С уважением, создатели сайта. Наша почта: info@rubookmac.com

Сгладить иерархию вложенных каталогов и файлов из командной строки Mac OS X

Использование командной строки для выравнивания файлов и структур каталогов, очевидно, лучше всего подходит для опытных пользователей, которым удобно использовать терминал в целом, если это вас не описывает, подумайте о том, чтобы сделать это вручную через Finder или с помощью приложения Mac Automator для выполняют аналогичную автоматизацию действий файловой системы. Однако мы сосредоточимся на сглаживании каталогов из командной строки.

Пример сглаживания каталога вложенных файлов

Чтобы лучше понять, что мы пытаемся сделать, давайте возьмем пример воображаемой структуры каталогов, называемой TestDirectory, расположенной в домашней папке пользователя. В этом примере TestDirectory содержит подпапки, такие как SubDirectory1, SubDirectory2, SubDirectory3 и т. Д., Каждый с файлами в этих соответствующих папках. То, что мы хотим сделать, это сгладить структуру каталогов, перемещая все файлы из SubDirectory (X) в родительский каталог «TestDirectory». Исходный каталог и содержимое, показанные рекурсивно, могут выглядеть примерно так:

$ find ~ / TestDirectory / -type f
~ / TestDirectory / rooty.jpg
~ / TestDirectory / SampleDirectory1 / бета-инструмент-preview.jpg
~ / TestDirectory / SampleDirectory1 / AlphaBeta-tool.jpg
~ / TestDirectory / SampleDirectory2 / тест-tools.jpg
~ / TestDirectory / SampleDirectory3 / тест-png.jpg
~ / TestDirectory / SampleDirectory3 / test1.jpg
~ / TestDirectory / SampleDirectory3 / test2.jpg

Чтобы свернуть этот каталог и содержимое подкаталога обратно в папку TestDirectory, вы должны использовать следующую командную строку:

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

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

~ / TestDirectory / rooty.jpg
~ / TestDirectory / бета-инструмент-preview.jpg
~ / TestDirectory / AlphaBeta-tool.jpg
~ / TestDirectory / тест-tools.jpg
~ / TestDirectory / тест-png.jpg
~ / TestDirectory / test1.jpg
~ / TestDirectory / test2.jpg

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

Сглаживание структуры каталогов и иерархии вложенных файлов с помощью командной строки

Готовы продолжить? Командная строка, которую мы собираемся использовать для выравнивания структуры каталогов и перемещения всех файлов из подкаталогов в базу целевого каталога, выглядит следующим образом:

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

Замените [DIRECTORY] каталогом по вашему выбору, чтобы сгладить, как показано в приведенном выше примере.

Да, каталог появляется дважды в командной строке, первый раз — поиск каталога, чтобы сгладить подкаталоги, а второй — в качестве адресата для найденных элементов.

Будьте точны с указанным пунктом назначения, потому что это не обратимо (ну, по крайней мере, без большого количества ручной работы с вашей стороны), так что сделайте это, только если вы абсолютно уверены, что хотите переместить все файлы в дочерние каталоги целевых каталогов обратно в целевую корневую папку.

Как уже упоминалось ранее, вы также можете сделать это в Finder OS X или, по крайней мере, наблюдать за изменениями файлов и папок в Finder. Опция + щелчок маленькими стрелками в представлении «Список» открывает все подкаталоги, отображая иерархию папок следующим образом:

Вложенная структура каталогов сглаживается, как показано в Finder Mac OS X

После возиться с различными альтернативами bash и zsh этот удобный трюк остался комментатором StackExcange, и он оказался самым простым и наиболее совместимым методом. Если вы знаете лучший способ сгладить вложенный каталог, сообщите нам об этом в комментариях!

Понравилась статья? Поделиться с друзьями: