Из этой статьи вы узнаете:
Научитесь пользоваться поиском в терминале Mac OS X
О том, какие команды для поиска в терминале Mac OS X существуют ?
Трудно говорить сегодня про командную строку UNIX – систем, как многофункциональный инструмент способный на очень трудные задачи. Не потому, что это не так – возможности командной строки никак не ограничены, и она по-прежнему способна на многое. Дело в том, что в Windows за последнее время появилось не меньше возможностей – но тут эти возможности стоят не на первом месте, пользователи не лезут в командную строку, когда случаются неполадки в системе, или банально нужно произвести настройку, сбор информации – все эти возможности организованы в дружелюбном, пользовательском интерфейсе. Здесь все решается при помощи мыши и клавиатуры.
Напротив, работа в командной строке всегда была ближе к UNIX, и тут мы возвращаемся к теме нашей сегодняшней статьи, а говорим мы про командную строку, расположенную в системах Mac OS X, под рабочим названием - Терминал. Возьмем выборочно, и заострим внимание исключительно на поиске, командах терминала, по средствам которых можно осуществлять поиск в системах Mac OS X.
Если брать графический интерфейс, который есть в Mac OS X, то поиск осуществляется в несколько нажатий. Когда вам нужен определенный файл, вы открываете Finder, и нажимаете Command + F, или вызываете поиск в Spotlight, а затем происходит все тот же поиск по имени или содержанию.
Но мы сегодня интересуемся поиском в терминале Mac OS X, который осуществляется рядом самых распространенных команд. В общей сложности их три "find" , "mdfind ","locate" . В терминале эти команды будут искать определенные файлы, по сформированному запросу, а затем вам будут предложены результаты поиска по категориям или месту расположения.
Команда Find терминала Mac OS X
Команда Find в терминале Mac OS X представляет собой вариант упрощенного поиска, где вы указываете имя команды через пробел, путь по которому следует искать то или иное имя файла с определенным расширением. Во время выполнения Find пройдет по всем папкам указанной директории в иерархическом порядке, и затем сделает вывод полных путей к файлам, которые соответствуют вашим критериям. Точно так как это реализовано ниже:
find /Users/mzv100/ -name Testfile.txt
Набрав команду выше, вы получите поисковую выдачу, по результатам которой будут найдены все файлы с названием “Testfile” и расширением .txt. На скриншоте ниже видно что папки с вложенными файлами содержат в себе не только .txtфайлы, не смотря на это найдены были только те которые нужны именно вам.
При этом стоит обратить внимание на то, что после указания пути идет дополнительный параметр поиска –name, который совсем не “одинок”. Можно произвести выборку по имени (-name), по размеру (-size), по типу (-type). Под типом файла можно понимать каталоги или ссылки.
Конечно, мы не можем в данной статье раскрыть все возможности поисковой команды Find терминала Mac OS X. Но мы любезно предоставим вам ссылку на спецификацию, где вы легко найдете варианты комбинирования различных команд. Не пугайтесь, читается легко, и очень занимательно (правда, не на родном Русском).
Спецификация команды Find терминала Mac OS X, удобная в использование (у Apple по другому не бывает). К тому же раскрывает все возможности применения дополнительных опций, когда речь идет о терминале Mac OS X, поиске, и конкретно команде Find.
Команда Locate терминала Mac OS X
Не такой привычной но не менее интересной среди поисковых команд терминала Mac OS X выступает команда Locate.
Дело в том, что когда вам захочется найти определенный файл на вашей системе вы, воспользуетесь командой Find, возможно она найдет именно то, что нужно вам. Но при этом в больших системах поиск будет долгим, а результат не всегда именно таким, каким вы хотите его видеть. Поэтому, если вам нужно осуществить поиск системных файлов Mac OS X (о расположение которых вы точно не в курсе, а значит, поиск будет долгим) вам просто незаменима команда locate.
По умолчанию данный вид поиска недоступен из терминала Mac OS X, так как необходимо включить индексирование следующей командой:
sudo launchctl load –w /System/Library/LaunchDaemons/com.apple.locate.plist
Прописав данную инструкцию в терминале Mac OS X, вы активируете индексирование системы компьютера Mac для последующей работы с командой поиска locate. Индексация займет некоторое время, но по завершению, вы сможете найти файлы по имени быстро, просто введя "locate" с указанием имени файла.
Команда mdfind терминала Mac OS X
Данная команда представляет собой поисковый инструмент из под учетной записи администратора. Она способна искать файлы по содержанию и метаданным, прекрасный вид поиска, который очень сильно напоминает Spotlight, которым вы, скорее всего пользуетесь находясь на рабочем столе. Не будет ошибкой сказать больше , mdfindэто и есть Spotlight, только поиск осуществляется исключительно из терминала Mac OS X, в более практичной форме с точки зрения потребления ресурсов.
Команда достаточно проста в использование, для ее осуществления в терминале пишется “mdfind”, а затем поисковый запрос:
mdfindTestfile
При этом мой терминал взорвался от выдачи, когда я всего лишь ввел название файла созданного ранее. Поиск ищет все, что содержит в себе сочетание в “Testfile”.
Почему выдача получилась настолько обширной? Дело в том, что mdfind ищет не только название, но и содержание, а также мета-описание. Но это не значит, что вам всегда придется искать в сотнях записей поисковой выдачи mdfind, чтобы найти одну, конкретную. Как и любая другая команда терминала, mdfind понимает ключи, правильно созданный поисковый запрос. Вы можете указать имя файла только одной категории или определенного каталога (области по которого поиск будет произведен в определенном месте). Чем-то даже похоже на команду найти.
Все расширения и возможности mdfind прекрасно описаны на страницах руководства команды, которую вы найдете по ссылке ниже. Удачи!