Меню Рубрики

Mac os find file

Поиск файлов в терминале Mac OS X

Не для кого не секрет, что терминал в Mac OS X выступает, как сильная среда, в которой вы получаете доступ к скриптовым инструментам, которые способны организовать ваши рабочие процессы в операционной системе Mac OS X; собрать информацию, сформировать отчеты — воспользоваться вашим “маком”, качественно новыми способами. Вообще, просто не передать словами, когда без использования мыши и графического окружения, вы способны проделывать достаточно сложный операции, исключительно из командной строки вашего устройства под управлением Mac OS X. Безусловно, работа в терминале Mac OS X требует определенных знаний, уровнем выше, чем просто — пользователь компьютера. Но изучая компьютерные технологии, я также определил для себя, что начало — это любой этап в той или иной области. Ты начинаешь изучать, читать, восполнять пробелы знаний, которых не достаточно. Так и с командной строкой в Mac OS X. В ней нет определенных операций, которые нужно начинать изучать поэтапно. Вы либо знаете о тех или иных особенностях и функциональных возможностях, либо нет. Итак, сегодня учимся искать файлы в терминале Mac OS X. Очередная статья про командную строку в Mac OS X.

С чего начинается поиск в 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, где будут указан полный путь к найденным файлам.

Так в примере выше, я воспользовался командой «find» в терминале Mac OS X (командной строке), для поиска файла с именем «Finder». В принципе условия поиска были достаточно простыми, ведь я знал расположение файла, знал его имя, и все что мне было необходимо — это ввести данные. Первое, что я сделал, это написал саму команду, далее путь к файлу, обозначил условие поиска «-name», и после условия ввел его значение — файл Finder.txt.

Стоит понимать, что мой пример примитивный, а поиск может происходит по любым параметрам, которые только пожелаете, и как может себе позволить «find» (команда поиска) в операционной системе Mac OS X (-type (поиск по определенному типу), -size (поиск по размеру файла) и т.д.).

Узнать о том какие условия доступны из командной строки для операторов «find» в Mac OS X можно набрав «man find». Появится полное описание команды. Как только закончите его читать нажмите Ctrl + Z.

Команда Locate

Найти что-либо в Unix системах быстрее чем в других ОС. Все дело в том, что поиск в Unix достаточно разнообразен. Ведь с одной стороны у вас есть команда «Find». Ее функционал был продемонстрирован выше, но она эффективна в том случае, когда вы точно знаете место размещения, или у вас есть время для ожидания. Так как поиск «в слепую» при помощи команды «Find», может занять достаточно много времени. Так как объем сканируемого пространства в современных жестких дисках достигает внушающих размеров.

Поэтому, если вам необходимо найти системные файлы, необходимо воспользоваться специальной командой поиска «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», я буду об этом знать.

Дорогой друг, таков мир, понравилась статья — поставь Лайк, это единственный способ для меня, быть заметным. Спасибо!

Источник

How do I find a file by filename in Mac OSX terminal?

I want to find a file on my Macbook with the filename: abc.dmg . I’ve tried to use spotlight, but it doesn’t find it. When I tried find, and used: find -name abc.dmg -path / , I got errors back.

What is the proper syntax to find a file by filename with the find command on a Mac OSX terminal?

7 Answers 7

In its simplest form, find takes one parameter: the path. In its actually useful form, it takes the path followed by narrowing criteria.

  • find (the program)
  • / (the path), and
  • -name abc.dmg (the criteria).

find . -name ‘*.csv’ for instance worked for me with wildcards. OP could also use find . -name ‘*.dmg’ to check his current directory, assuming he was in / .

The mdfind command uses the Spotlight database

You can use the locate command.

The simplest way (which I’m sure you’ve already tried, but hey, let me add it to the thread anyway) is to enter abc.dmg into the search box on the top right of any finder window, then select «File Name» from the options on the Search Bar that appears.

No need for the terminal.

Also remember that Spotlight only indexes directories specified in the Spotlight control panel and abc.dmg may not be in one of those directories.

Correct me if i’m wrong, but i think the find command needs to know what to output:

. should print any results to the terminal (including permission errors).

If you don’t want permission errors and want to search other User directories then:

You may use following command line functions to quickly find and open relevant file. I find this easier than typing long string of query in spotlight window.

Add following functions in

/.bash_aliases or open a new terminal load functions. To search for files with words, pie and 2016 anywhere in the file name, do

Источник

Mac os find file

Из этой статьи вы узнаете:

Научитесь пользоваться поиском в терминале 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 ”, а затем поисковый запрос:

При этом мой терминал взорвался от выдачи, когда я всего лишь ввел название файла созданного ранее. Поиск ищет все, что содержит в себе сочетание в “ Testfile ”.

Почему выдача получилась настолько обширной? Дело в том, что mdfind ищет не только название, но и содержание, а также мета-описание. Но это не значит, что вам всегда придется искать в сотнях записей поисковой выдачи mdfind , чтобы найти одну, конкретную. Как и любая другая команда терминала, mdfind понимает ключи, правильно созданный поисковый запрос. Вы можете указать имя файла только одной категории или определенного каталога (области по которого поиск будет произведен в определенном месте). Чем-то даже похоже на команду найти.

Все расширения и возможности mdfind прекрасно описаны на страницах руководства команды, которую вы найдете по ссылке ниже. Удачи!

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Mac os file host
  • Mac os extended чувствительный к регистру символов журналируемый
  • Mac os extended журнальный на windows
  • Mac os extended журнальный зашифрованный
  • Mac os extended journaled под windows