Как найти файлы и папки в терминале OSX?
Какие существуют команды для поиска в терминале OSX?
Не для кого не секрет, что терминал в Mac OS X выступает, как сильная среда, в которой вы получаете доступ к скриптовым инструментам, которые способны организовать ваши рабочие процессы в операционной системе Mac OS X; собрать информацию, сформировать отчеты - воспользоваться вашим “маком”, качественно новыми способами. Вообще, просто не передать словами, когда без использования мыши и графического окружения, вы способны проделывать достаточно сложный операции, исключительно из командной строки вашего устройства под управлением Mac OS X. Безусловно, работа в терминале Mac OS X требует определенных знаний, уровнем выше, чем просто - пользователь компьютера. Но изучая компьютерные технологии, я также определил для себя, что начало - это любой этап в той или иной области. Ты начинаешь изучать, читать, восполнять пробелы знаний, которых не достаточно. Так и с командной строкой в Mac OS X. В ней нет определенных операций, которые нужно начинать изучать поэтапно. Вы либо знаете о тех или иных особенностях и функциональных возможностях, либо нет. Итак, сегодня учимся искать файлы в терминале Mac OS X. Очередная статья про командную строку в Mac OS X.
Реклама на nextontext.ru
С чего начинается поиск в OS X, когда мы работаем с графической средой? Все просто, мы вызываем Finder, и нажимаем сочетание клавиш Command + F (на раскладке macbook клавиша слева, рядом с пробелом). Нажав сочетание для вызова поиска, мы просто вбиваем текст в соответствующее поле, и получаем наиболее полную информацию по интересующим нас критериям.
А как это происходит в командной строке? На самом деле поиск в командной строке Mac OS X также прост. Вам потребуется знать всего три основные команды поиска: "Find", "mdfind", "locate". После ввода этих команд и указания всех параметров поиска, ваша поисковая выдача наполнится результатами с демонстрацией полного пути к файлам наиболее четко соответствующим введенному запросу.
Команда Find
Базовая команда поиска не только в операционной системе Mac OS X, но и на всех других Unix системах. Я говорю о том, что этот вариант поиска работает в других операционных системах, отличных от Mac OS X. Чтобы команда выполнялась корректно ей необходимо создать ряд условий:
1. Вы определяете область по которой будет происходить поиск;
2. Затем указываете имена файлов которые вам необходимы.
Не так много условий, но как только они будут выполнены, перед вами появится окно результатов поиск в командной строке Mac OS X, где будут указан полный путь к найденным файлам.
Реклама на nextontext.ru
Так в примере выше, я воспользовался командой "find" в терминале Mac OS X (командной строке), для поиска файла с именем "Finder". В принципе условия поиска были достаточно простыми, ведь я знал расположение файла, знал его имя, и все что мне было необходимо - это ввести данные. Первое, что я сделал, это написал саму команду, далее путь к файлу, обозначил условие поиска "-name", и после условия ввел его значение - файл Finder.txt.
Читайте актуальное: Поиск в файлов и папок в Ubuntu
Стоит понимать, что мой пример примитивный, а поиск может происходит по любым параметрам, которые только пожелаете, и как может себе позволить "find" (команда поиска) в операционной системе Mac OS X (-type (поиск по определенному типу), -size (поиск по размеру файла) и т.д.).
Узнать о том какие условия доступны из командной строки для операторов "find" в Mac OS X можно набрав "man find". Появится полное описание команды. Как только закончите его читать нажмите Ctrl + Z.
Команда Locate
Найти что-либо в Unix системах быстрее чем в других ОС. Все дело в том, что поиск в Unix достаточно разнообразен. Ведь с одной стороны у вас есть команда "Find". Ее функционал был продемонстрирован выше, но она эффективна в том случае, когда вы точно знаете место размещения, или у вас есть время для ожидания. Так как поиск "в слепую" при помощи команды "Find", может занять достаточно много времени. Так как объем сканируемого пространства в современных жестких дисках достигает внушающих размеров.
Реклама на nextontext.ru
Поэтому, если вам необходимо найти системные файлы, необходимо воспользоваться специальной командой поиска "locate". Правда для этого сначала необходимо включить специальную базу данных. Для начала вводим следующую строку в терминале OS X:
Sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
Данная инструкция заставит активироваться в вашей системе демона, который проиндексирует вашу систему и позволит работать с командой "locate" в терминале операционной системы OS X. Как я уже говорил команда locate направлена для поиска по системным файлам. Именно для этого ее и необходимо использовать. Так как в поисковый индекс не попадут пользовательские файлы. Кстати, не пытайтесь воспользоваться поиском при помощи locate сразу. База должна быть создана. Но как только процесс будет завершен, можно воспользоваться следующей конструкцией - пишем locate имя файла.
Команда mdfind
Эта команда представляет собой поисковый алгоритм в системах OS X только без графического окружения. Да, mdfind - это Spotlight, только без красивых кнопок, и с более трудными для понимания настройками.
Именно в этом поиске происходит настройка поиска по определенным параметрам, с указанием метаданных. При этом команда не лишена простого и понятного функционала, как просто осуществить поиск.
Введя простую инструкцию mdfind OSX. Будут найдены все документы с содержанием как внутри так и в название "OSX". Но такой поиск слишком широк, нам не нужна поисковая выдача содержащая несколько сотен объектов, и поэтому в команде mdfind приветствуется использование флагов. Таких как флаг "-onlyin" который дает возможность воспользоваться командой mdfind, но только по определенной конструкции, когда поиск будет производится в том месте который мы теперь можем указать (теперь, после ввода флага "-onlyin").
Кстати, если использовать "-onlyin" в директории (указывать путь поиска и заканчивать на директории) то поиск будет осуществляется в конечной папке и уровнями ниже. При этом если указать в конце файл, поиск будет производится в конкретном файле.
Собственно не так сложно, но при этом лучше конечно же знать спецификацию, попробовать почитать, чтобы понимать какие есть возможности для работы с командой поиска mdfind в терминале Mac OS X.
Под занавес я не мог пропустить один очень интересный флаг для поиска в терминале OS X, команды mdfind. Этот флаг называется "-live". Его функциональные особенности заключаются в том, что он может отслеживать изменения в тех или иных объектах в реальном времени. Все просто, вы прописываете конструкцию запроса, к примеру:
mdfind OSX -onlyin /Users/mzv100/Desktop/ -live
Теперь когда я делаю изменения в конечной директории, и эти изменения касаются непосредственно запроса "OSX", я буду об этом знать.