Как найти папку в терминале mac

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

Поиск файлов в терминале 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.

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

Команда Locate

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

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

Поэтому, если вам необходимо найти системные файлы, необходимо воспользоваться специальной командой поиска “locate”. Правда для этого сначала необходимо включить специальную базу данных. Для начала вводим следующую строку в терминале OS X:

Sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

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

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

Команда mdfind

Эта команда представляет собой поисковый алгоритм в системах OS X только без графического окружения. Да, mdfind – это Spotlight, только без красивых кнопок, и с более трудными для понимания настройками.

Именно в этом поиске происходит настройка поиска по определенным параметрам, с указанием метаданных. При этом команда не лишена простого и понятного функционала, как просто осуществить поиск.

Введя простую инструкцию mdfind OSX. Будут найдены все документы с содержанием как внутри так и в название “OSX”. Но такой поиск слишком широк, нам не нужна поисковая выдача содержащая несколько сотен объектов, и поэтому в команде mdfind приветствуется использование флагов. Таких как флаг “-onlyin” который дает возможность воспользоваться командой mdfind, но только по определенной конструкции, когда поиск будет производится в том месте который мы теперь можем указать (теперь, после ввода флага “-onlyin”).

Кстати, если использовать “-onlyin” в директории (указывать путь поиска и заканчивать на директории) то поиск будет осуществляется в конечной папке и уровнями ниже. При этом если указать в конце файл, поиск будет производится в конкретном файле.

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

Собственно не так сложно, но при этом лучше конечно же знать спецификацию, попробовать почитать, чтобы понимать какие есть возможности для работы с командой поиска mdfind в терминале Mac OS X.

Под занавес я не мог пропустить один очень интересный флаг для поиска в терминале OS X, команды mdfind. Этот флаг называется “-live”. Его функциональные особенности заключаются в том, что он может отслеживать изменения в тех или иных объектах в реальном времени. Все просто, вы прописываете конструкцию запроса, к примеру:

mdfind OSX -onlyin /Users/mzv100/Desktop/ -live

Теперь когда я делаю изменения в конечной директории, и эти изменения касаются непосредственно запроса “OSX”, я буду об этом знать.

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

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

Работаем в Terminal Mac OS X. Разные способы поиска файлов в терминале Mac OS X

Командная строка

В статье рассмотрены синтаксис и примеры основных команд для работы с папками и файлами в командой строке macOS. Вы узнайте как создать, скопировать, переместить, удалить папки и файлы, как посмотреть дерево папок и т.п.

Cодержание

  • Как узнать полный путь к текущей папке
  • Как в терминале macOS перейти в папку
  • Как перейти в домашнюю папку пользователя
  • Как перейти в папку на уровень выше
  • Как посмотреть содержимое папки
  • Как посмотреть содержимое файла
  • Как в командной строке показать папки и файлы отмеченные тегом в Finder
  • Как в командной строке посмотреть информацию о папке или файле
  • Как в Terminal посмотреть содержимое внешнего диска
  • Как посмотреть дерево папок в командной строке macOS
  • Как создать папку в терминале macOS
  • Как создать новый файл
  • Как скопировать папку или файл через терминал macOS
  • Как переместить папку или файл
  • Как удалить папку или файл через терминал Mac

Большинство задач при работе с папками и файлами в macOS можно решить с помощью Finder. Командная строка может пригодится, когда необходимо устранить какую-нибудь проблему или включить скрытые настройки macOS, скопировать нужные данные при удаленном подключение к Mac через ssh или написать скрипт для автоматизации рутинных задач.

Для работы в командной строке macOS откройте Terminal, для этого через Finder перейдите в:

/Программы/Утилиты/Terminal

Как узнать полный путь к текущей папке

После открытия Terminal по умолчанию пользователь находится в своей домашней папке. Полный путь к текущей папке можно узнать с помощью команды pwd.

pwd – «present working directory», можно перевести как «текущая рабочая папка».

Полный путь к домашней папке пользователя

Как в терминале macOS перейти в папку

Переход между папками осуществляется с помощью команды cd.

cd – «change directory», можно перевести как «сменить папку» или «перейти в другую папку».

Синтаксис команды:

cd [путь к папке]

Перейдите в папку Desktop [Рабочие стол], для этого наберите команду:

cd Desktop

Переход в папку Desktop

Чтобы вернуться обратно к домашней папке наберите команду:

cd –

«-» – данная опция используется для перехода в последнюю просмотренную папку. Обратите внимание, что после выполнения команды cd – в Terminal будет выведет символ «~».

«~» – в командой строке macOS является синонимом полного пути к домашней папке текущего пользователя, чтобы убедится в этом наберите команду pwd.

Переход в последнюю просмотренную папку

Как перейти в домашнюю папку пользователя

Если нужно перейти в домашнюю папку пользователя под которым вы запустили macOS, наберите команду:

cd ~

Для перехода в домашнюю папку другого пользователя используйте полный путь:

cd /Users/username

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

Как перейти в папку на уровень выше

«..» – опция две точки используется для перехода в папку на уровень выше, наберите в Terminal:

cd ..

Переход в папку на уровень выше

Если нужно перейти в папку на несколько уровней выше добавляйте «/» между «..», например так можно перейти в папку на два уровня выше:

cd ../../

Переход в папку на два уровня выше

Для перехода в корневую папку macOS используйте команду:

cd /

Переход в корневую папку

Обратите внимание, если в имени папки или файла содержится пробел, например «Новая папка», имя необходимо поместить в одинарные или двойные кавычки:

cd ‘Новая папка’

Переход в папку с пробелом в имени с помощью кавычек

Или поставить обратный слэш «» перед пробелом:

cd Новая папка

Переход в папку с пробелом в имени с помощью обратного слэш

Это связано с тем, что командная строка воспринимает пробел как конец команды.

Как посмотреть содержимое папки

Просмотр содержимого папки осуществляется с помощью команды ls.

ls – «list files in the directory», можно перевести как «вывести список файлов в папке».

Синтаксис команды:

ls [-опции]

Давайте посмотрим содержимое текущей папки, для этого наберите команду:

ls

Вывод содержимого домашней папки пользователя

По умолчанию команда ls выводит список с именем всех папок и файлов в виде колонок. Для того, чтобы изменить вывод списка можно воспользоваться следующими опциями:

-A – отображение всех файлов за исключением “.” и “..”.

-a – отображение в том числе скрытых файлов, которые начинаются с точки “.”.

-f – отображение списка файлов без сортировки.

-l – отображение детального списка, который включает: размер файла, создатель, дата/время создания и т.д.

-h – отображение размера файлов в KB/MB/GB, а не только в байтах.

-r – сортировка файлов в обратном порядке.

-S – сортировка файлов по размеру.

-t – сортировка файлов по дате последнего изменения.

-u – сортировка файлов по дате последнего открытия.

Например можно вывести подробный список (-l) содержимого текущей папки, отсортированный по размеру (-S) в обратном порядке (-r), размер файлов отображается в KB/MB/GB (-h):

ls -lShr

Вывод содержимого папки в виде подробного списка

Как посмотреть содержимое файла

Посмотреть содержимое файла можно с помощью команды cat.

cat – «concatenate», можно перевести как «конкатенировать», в контексте просмотра содержимого файла имеется в виду связывание строк для вывода на экран.

Синтаксис команды:

cat [имя файла]

Для просмотра содержимого текстового файла macmaniac.txt введите:

cat file.txt

Просмотр содержимого текстового файла

Как в командной строке показать папки и файлы отмеченные тегом в Finder

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

mdfind – «metadata find», можно перевести как «поиск метаданных».

Синтаксис команды:

mdfind ‘kMDItemUserTags=’ [-опции]

Например в домашней папке пользователя macmaniac есть следующие папки и файлы, которые отмечены тегом «Красный»

Папки и файлы в Finder с тегом «Красный»

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

mdfind ‘kMDItemUserTags=Красный’

Cписок папок и файлов с тегом «Красный»

Либо используйте опцию -onlyin, если необходимо указать полный путь к папке:

mdfind ‘kMDItemUserTags=Красный’ -onlyin /Users/macmaniac

Как в командной строке посмотреть информацию о папке или файле

Обычно в macOS посмотреть информацию о папке или файле можно через Finder в меню Свойства

Информация о папке или файле в Finde

В командной строке аналогичную информацию можно посмотреть с помощью команды mdls.

mdls – «metadata list», можно перевести как «список метаданных».

mdls file.txt

«Список метаданных» файла file.txt

Как в Terminal посмотреть содержимое внешнего диска

Для того, чтобы посмотреть содержимое внешнего жесткого диска или USB-флешки необходимо с помощью команды cd перейти в папку /Volumes

cd /Volumes

Затем с помощью команды ls вывести список подключенных дисков (что бы найти нужный) и с помощью команды ls вывести его содержимое. Например так можно посмотреть содержимое USB-флешки с именем «Macmaniac»:

ls Macmaniac

Просмотр содержимого флешки

Как посмотреть дерево папок в командной строке macOS

К сожалению в командной строке macOS нету встроенной команды для просмотра дерева папок. Чтобы вывести дерево папок необходимо из Homebrew установить утилиту tree.

Homebrew– менеджер приложений для macOS, с помощью которого можно устанавливать сторонние приложения для командной строки (и не только).

Для установки Homebrew вставьте в Terminal следующую команду и введите пароль администратора, если потребуется:

/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”

Не закрывайте Terminal пока скрипт установки не закончит свою работу.

Установка homebrew

После завершения установки в Terminal должно появится сообщение Installation successful! и заголовок Next steps со списком команд, которые нужно поочередно вставить в Terminal и нажать ↩ return:

echo ‘# Set PATH, MANPATH, etc., for Homebrew.’ >> /Users/macmaniac/.zprofileecho ‘eval “$(/opt/homebrew/bin/brew shellenv)”‘ >> /Users/macmaniac/.zprofileeval “$(/opt/homebrew/bin/brew shellenv)”

Теперь можно установить tree, для этого введите следующую команду:

brew install tree

Установка tree

Синтаксис команды tree:

tree [путь к папке]

Просмотр дерева папок

Как создать папку в терминале macOS

Создание новой папки осуществляется с помощью команды mkdir.

mkdir – «make directory», можно перевести как «создать папку».

Синтаксис команды:

mkdir [-опции] [имя новой папки]

Для создания папки с именем folder в текущей директории введите:

mkdir folder

Создание папки в текущей директории

Чтобы создать новую папку с именем folder по указанному пути ~/Documents введите:

mkdir ~/Documents/folder

Создание папки по указанному пути

Для mkdir также доступны следующие опции:

-m – определение прав доступа к создаваемой папке.

-p – создание вложенных папок за один раз.

-v – вывод имени каждой созданной папки на экран.

Для создания трех папок вложенных друг в друга одной командой используйте опцию -p:

mkdir -p folder1/folder2/folder3

Создания трех папок вложенных друг в друга одной командой

Чтобы создать несколько папок одной командой в текущей папке используйте пробел между названиями новых папок:

mkdir folder1 folder2 folder3

Создание нескольких папок одной командой

Как создать новый файл

Создание нового файла осуществляется с помощью команды touch.

touch – можно перевести как «прикоснуться», «потрогать».

Синтаксис команды:

touch [имя нового файла]

touch позволяет создать любой файл: изображение (.jpg), текстовый файл (.txt) и т.п. Созданные файлы будут пустыми.

Для создания текстового файла введите:

touch file.txt

Создание текстового файла

Чтобы создать несколько текстовых файлов используйте пробел между названиями:

touch file1.txt file2.txt

Создание нескольких текстовых файлов одной командой

Как скопировать папку или файл через терминал macOS

Копирование папок и файлов осуществляется с помощью команды cp.

cp – «copy», можно перевести как «копировать».

Синтаксис команды:

cp [-опции] [имя файла/папки-источника] [путь назначения]

Для копирование файла с именем file.txt в директории Documents [Документы] введите:

cp file.txt ~/Documents

Копирование файла

Для cp также доступны следующие опции:

-R – копирование папки и всего ее содержимого.

-f – при совпадении имён копируемого файла с уже имеющимся в папке, этот файл будет стёрт без предупреждений и уведомлений.

-i – подтверждение в случае совпадения имен (перезаписывать текущий файл или папку).

-n – при копировании файлы не будут перезаписываться.

-p – сохраняет атрибуты копируемых файлов/папки (автора, время изменения, время последнего открытия и т.д.).

Чтобы скопировать все файлы с расширением *.jpg в папку Desktop [Рабочие стол] введите:

cp *.jpg ~/Desktop

Копирование всех файлов с расширением *.jpg

Для копирования папки folder со всеми подпапками и файлами в папку Desktop [Рабочие стол] используйте опцию -R:

cp -R folder ~/Desktop

Как переместить папку или файл

Перемещение папок и файлов осуществляется с помощью команды mv.

mv – «move», можно перевести как «переместить», «передвинуть».

Синтаксис команды:

mv [-опции] [имя файла/папки-источника] [путь назначения]

Для перемещения файла с именем file.txt в папку Desktop [Рабочий стол] введите:

mv file.txt ~/Desktop

Перемещение файла

Для mv также доступны следующие опции:

-n – не перезаписывать существующие файлы/папки.

-i – подтверждение каждого действия, которое может перезаписать файлы или папки.

-f – форсировать перезапись объектов с одинаковыми именами.

-v – вывод имен файлов по мере их перемещения.

Чтобы переместить все файлы с расширением *.jpg в папку Desktop [Рабочий стол] введите:

mv *.jpg ~/Desktop

Перемещение всех файлов с расширением *.jpg

Для перемещения папки с именем folder в папку Desktop [Рабочий стол] введите:

mv folder ~/Desktop

Перемещение папки

Также одной командой сразу можно переместить несколько файлов:

mv file1.txt file2.txt file3.txt ~/Desktop

Перемещение нескольких файлов одной командой

Чтобы переместить все файлы из папки Documents [Документы] в папку Desktop [Рабочие стол] введите:

mv ~/Documents/* ~/Desktop

Перемещение всех файлов из папки

Еще при перемещении папки или файла можно поменять его имя. Для перемещения и переименования файла file1.txt в file2.txt введите:

mv file1.txt file2.txt

Переименование файла

Как удалить папку или файл через терминал Mac

Удаление папок и файлов осуществляется с помощью команды rm.

rm – «remove», можно перевести как «удалить».

Синтаксис команды:

rm [-опции] [имя файла/папки]

Для удаления файла file2.txt, который находится в папке Documents [Документы] введите:

rm ~/Documents/file2.txt

Удаление файла

Для rm также доступны следующие опции:

-d – удаление пустых папки.

-R – удаление папок и их содержимого.

-f – принудительное удаление файла без запроса подтверждения или сообщения об ошибках.

-i – подтверждение каждой попытки удалить файл.

Чтобы удалить все файлы с расширением *.jpg введите:

rm *.jpg

Удаление всех файлов с расширением *.jpg

Для удаления папки folder и всего, что в ней находится введите:

rm -R folder

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.

# find any item matching search query in file name
spot(){
  mdfind "kMDItemDisplayName=='*$1*'cd";
}

# restrict to files under (recursive) a specific path 
findpaper(){
    mdfind -onlyin "/Users/foo/articles" "kMDItemDisplayName=='*$1*'cd";
}

# default to open the first entry unless 2nd positional argument is given
openpaper(){
    FILEID=$(printf "%sp" ${2:-1})

    open "$(mdfind -name -onlyin "/Users/foo/articles" "kMDItemDisplayName=='*$1*'cd" | sed -n "${FILEID}")"

}

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

spot pie*2016 #or
spot 2016*pie

There is no need to prepend or append * to your query as the search pattern, '*$1*' already tags wild card entry at beginning and end of your query. Additional cd is for case insensitive and ignoring diacritical marks, e.g., fred will return both, Frédéric and FrEDeric.

findpaper will restrict search to results under a specific path (recursive) while openpaper pie*201 will open a (or first of multiple results) search result or openpaper pie*201 3 will open third result entry. To avoid opening bash scripts or other non-document files, you may restrict file contents by additional search attributes. See File Metadata Query Expression Syntax and https://ss64.com/osx/mdfind.html for using other search operators.

TerminalМы продолжаем наш цикл о командной строке Mac OS X. Как мы и обещали, на этот раз речь пойдёт о возможностях поиска объектов, предоставляемых терминалом Мака. Скептики сразу удивятся и подумают: «мы уже десять лет живём в XXI веке, а вы тут предлагаете заниматься поиском через командную строку, как в старые добрые восьмидесятые?». Отчасти скептики будут правы, потому что встроенные в Mac OS X пользовательские средства поиска очень даже хороши. Но только до тех пор, пока вам не понадобится сформировать сложный запрос. В этом случае знание возможностей командной строки позволит вам сэкономить немало времени и сил.

Сегодня мы расскажем о команде find и ещё об одном средстве поиска — команде whereis.

find

Основная команда поиска имеет следующий синтаксис:

find [область поиска] [условия поиска] [шаблон свойств объекта]

Иными словами, сначала нужно указать, ГДЕ ищем, потом — КАК ищем, потом — ЧТО ищем. Про команду find и все её параметры можно писать целую книжку. Их настолько много, что пытаться осветить все из них в этом материале было бы бессмысленно. Более того, многие параметры используются крайне редко и вряд ли понадобятся рядовому (или даже продвинутому) пользователю.

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

~ — ваша «домашняя папка»

/ — весь компьютер

. — текущий каталог

.. — каталог более высокого уровня

Кроме того, никто не запрещает ввести вам в качестве области полноценный путь к папке.

А вот параметры поиска можно рассматривать долго. Очень долго.

-name — самый популярный параметр. Ищет по имени файла.

-maxdepth — задаёт максимальную глубину поиска. Если вы введёте -maxdepth 4, то команда find не станет просматривать содержимое подподподподпапок. А вот подподподпапки она всё-таки прошерстит 🙂

-mindepth — задаёт минимальную глубину поиска. Если ввести -mindepth 2, то поиск будет вестить, начиная со второго уровня вложения.

-flags — задаёт атрибуты (флаги) объекта. Подробнее про список флагов мы поговорим в отдельной статье. А пока запомните, что -flags hidden ищет только скрытые файлы.

-empty — ищет только пустые файлы и папки. Никаких дополнительных параметров не требуется

-group — ищет файлы, у которых группа соответствует введённому критерию. Например, можно ввести -group wheel.

-newer — ищет все файлы новее заданного (соответственно, требуется ввести путь к файлу-эталону). «Новее» значит «более поздняя дата изменения».

-newerXY — вообще высший пилотаж поиска. Вместо X вы можете подставить B (дата создания), m (дата модификации), a (дата последнего доступа к файлу) — эти параметры относятся к объекту, который вы ищете. Вместо Y можно подставить те же параметры, но они будут относиться к объекту-эталону, путь к которому задаётся далее. Вся эта конструкция запускает поиск по сложному критерию сравнения дат: например, -neweraB file станет искать только те объекты, у которых дата последнего доступа новее, чем дата создания объекта file.

Xtime — дополнение к предыдущему параметру. Вместо X можно ввести те же сокращения. Например, -mtime 7 покажет вам только те объекты, которые модифицировались в течение последней недели.

-path — позволяет точнее указать путь к файлу. Параметр приобретает смысл, если его применять с регулярными выражениями, о которых мы поговорим позже.

-perm — задаёт права доступа к искомому объекту. Например, можно ввести -perm 644.

-size — задаёт размер файла. Вслед за size вводится число и сокращение:

  • 10с означает 10 байт;
  • 10k — 10 килобайт;
  • 10M — 10 мегабайт;
  • 10G — 10 гигабайт;
  • 10T — 10 терабайт;
  • 10P — 10 петабайт (нехилый размер, не правда ли? 🙂

-type — задаёт тип объекта. Тут тоже нужны сокращения (например, -file f):

  • d — папка
  • f — файл
  • l — символическая ссылка

-user — задаёт имя владельца. Подходит как имя пользователя, так и цифровое обозначение (например, -user 501).

-iname — поиск по имени без учёта регистра

-ipath — поиск по пути без учёта регистра

Думаете, это всё? Если бы 🙂

find -a — ищет тот объект, параметры которого удовлетворяют сразу двум критериям поиска. Таким образом можно требовать что-то вроде: find -name ... -a -user ..., тогда команда будет искать файлы по имени и по владельцу, к примеру. Запоминается легко — a — and. Прямо как в естественном языке — пишем условия слева и справа от данного флага.

find -o — аналогична предыдущей команде, однако ищет то, что удовлетворяет хотя бы одному из критериев (o тут служит в роли or — или). В случае описанного выше примера мы можем искать файлы либо принадлежащие кому-то, либо, к примеру, ещё кому-то, тут не получится задать «и», так как файл не может принадлежать сразу нескольким, только одному пользователю.

find -n — днная команда продолжает наш рассказ о логических запросах, мы можем указать, какой параметр не должен встречаться у файла, тут n — not. Мы можем инвертировать значение логического выражения также с помощью !, указав его перед скобками. find . ! ( -name «*.jpg» ) найдёт нам всё, что не имеет суффикса .jpg, то есть, предположительно не фотографии, таким образом, указав нужные расширения, мы можем отделить музыку от плейлистов с обложками, к примеру. Опции эти могут пригодиться при построении сложных запросов с участием сразу нескольких таких вот флагов, ведь мы можем без проблем комбинировать and и or, а также «!» для отрицания.

find -exec — эта команда поможет нам выполнить с найденными файлами некоторое действие, которое просто задаётся командой после данной опции. find . -name «*» -exec cat покажет нам все найденные файлы. Тут для простоты я предполагаю, что всё в данной директории — обычные тектовые файлы и я могу их так просто вывести, это нужно для упрощения примера, однако можно строить куда более сложные запросы, используя полученные знания, относящиеся к логическим запросам.

find -fprint — данная команда выведет данные не на терминал, а в файл. Необходимо просто указать его имя после опции, таким образом мы можем легко и просто освободить терминал от ненужной информации и продолжить работать с результатами позже, открыв файл или же выведя его в терминал.

Полагаем, нет смысла говорить о том, что комбинировать все эти параметры можно как угодно. Можно даже вбить всё это в одну команду!

Попробуйте поиграться с find и ввести что-нибудь типа:

find ~ -type f -iname iTunes -size 20M -mtime 14 -user 501 -perm 755

whereis

Это экзотическая команда поиска программ. Она позволяет узнать, где находится файл той или иной команды, которую вы запускаете в Терминале. Например, можно ввести:

whereis find

И вам покажут местонахождение бинарного файла команды (/usr/bin/find). Пользоваться этой командой вам придётся нечасто, но иногда она может пригодиться.

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

Содержание

  1. Как искать файлы в OS X с помощью Терминала
  2. Утилита mdfind позволяет найти скрытые глубоко в системе файлы, которые не видно при поиске в Spotlight
  3. Как искать файлы в OS X с помощью Терминала
  4. Утилита mdfind позволяет найти скрытые глубоко в системе файлы, которые не видно при поиске в Spotlight
  5. Поиск файла через терминал mac os
  6. Команда Find терминала Mac OS X
  7. Команда Locate терминала Mac OS X
  8. Команда mdfind терминала Mac OS X
  9. Секреты Терминала. Часть 6: Способы поиска
  10. whereis
  11. Поиск файла через терминал mac os
  12. Команда Find
  13. Читайте актуальное: Поиск в файлов и папок в Ubuntu
  14. Команда Locate
  15. Команда mdfind

Как искать файлы в OS X с помощью Терминала

Утилита mdfind позволяет найти скрытые глубоко в системе файлы, которые не видно при поиске в Spotlight

how to search files in os x using terminal

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

Благодаря тому что OS X это система основанная на Unix она содержит массу скрытых возможностей, которые доступны через командную строку. Поиск через командую строку позволяет найти совершенно все файлы, даже если они были скрыты и хранятся где-то глубоко в системе. Это может быть эффективно, если вы пытаетесь полностью удалить какое-то приложение вручную или ищите необходимые файлы по всему жесткому диску, включая системные папки.

how to search files in os x using terminal 1

Запустите Терминал и введите команду mdfind + искомое слово:

how to search files in os x using terminal 0

Вы также можете вывести полученный список в файл, чтобы например отправить кому-то или просто держать его под рукой:

Существует еще одна консольная утилита, под названием mdls, которая отображает подробные метаданные атрибуты файлов, например можно просмотреть атрибуты графического файла:

how to search files in os x using terminal 2

На выходе вы получите список атрибутов и их параметров, например kMDItemKind = 684, говорит о ширине картинки в пикселях (полный список атрибутов файлов смотрите в документации Apple). Следующая команда будет искать файлы в папке пользователя, чья ширина также равна 684 px:

В этой строке вы могли заметить использование оператора равно ==, но можно использовать и другие, такие как больше, = больше или равно, && и, || или. Например следующая команда найдет все MP3 файлы в папке пользователя, длина которых больше или равна 3-м минутам:

‘kMDItemContentType = «public.mp3» >= kMDItemDurationSeconds = «180»‘

Тип искомого файла можно задавать более простым способом:

Источник

Как искать файлы в OS X с помощью Терминала

Утилита mdfind позволяет найти скрытые глубоко в системе файлы, которые не видно при поиске в Spotlight

how to search files in os x using terminal

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

Благодаря тому что OS X это система основанная на Unix она содержит массу скрытых возможностей, которые доступны через командную строку. Поиск через командую строку позволяет найти совершенно все файлы, даже если они были скрыты и хранятся где-то глубоко в системе. Это может быть эффективно, если вы пытаетесь полностью удалить какое-то приложение вручную или ищите необходимые файлы по всему жесткому диску, включая системные папки.

how to search files in os x using terminal 1

Запустите Терминал и введите команду mdfind + искомое слово:

how to search files in os x using terminal 0

Вы также можете вывести полученный список в файл, чтобы например отправить кому-то или просто держать его под рукой:

Существует еще одна консольная утилита, под названием mdls, которая отображает подробные метаданные атрибуты файлов, например можно просмотреть атрибуты графического файла:

how to search files in os x using terminal 2

На выходе вы получите список атрибутов и их параметров, например kMDItemKind = 684, говорит о ширине картинки в пикселях (полный список атрибутов файлов смотрите в документации Apple). Следующая команда будет искать файлы в папке пользователя, чья ширина также равна 684 px:

В этой строке вы могли заметить использование оператора равно ==, но можно использовать и другие, такие как больше, = больше или равно, && и, || или. Например следующая команда найдет все MP3 файлы в папке пользователя, длина которых больше или равна 3-м минутам:

‘kMDItemContentType = «public.mp3» >= kMDItemDurationSeconds = «180»‘

Тип искомого файла можно задавать более простым способом:

Источник

Поиск файла через терминал mac os

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

Научитесь пользоваться поиском в терминале Mac OS X

Трудно говорить сегодня про командную строку UNIX – систем, как многофункциональный инструмент способный на очень трудные задачи. Не потому, что это не так – возможности командной строки никак не ограничены, и она по-прежнему способна на многое. Дело в том, что в Windows за последнее время появилось не меньше возможностей – но тут эти возможности стоят не на первом месте, пользователи не лезут в командную строку, когда случаются неполадки в системе, или банально нужно произвести настройку, сбор информации – все эти возможности организованы в дружелюбном, пользовательском интерфейсе. Здесь все решается при помощи мыши и клавиатуры.

Команда Find терминала Mac OS X

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

2014.05.04 Mac search 2

2014.05.04 Mac search 1

Команда Locate терминала Mac OS X

2014.05.04 Mac search 3

По умолчанию данный вид поиска недоступен из терминала Mac OS X, так как необходимо включить индексирование следующей командой:

sudo launchctl load –w /System/Library/LaunchDaemons/com.apple.locate.plist

Команда mdfind терминала Mac OS X

Команда достаточно проста в использование, для ее осуществления в терминале пишется “ mdfind ”, а затем поисковый запрос:

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

2014.05.04 Mac search 4

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

Источник

Секреты Терминала. Часть 6: Способы поиска

TerminalМы продолжаем наш цикл о командной строке Mac OS X. Как мы и обещали, на этот раз речь пойдёт о возможностях поиска объектов, предоставляемых терминалом Мака. Скептики сразу удивятся и подумают: «мы уже десять лет живём в XXI веке, а вы тут предлагаете заниматься поиском через командную строку, как в старые добрые восьмидесятые?». Отчасти скептики будут правы, потому что встроенные в Mac OS X пользовательские средства поиска очень даже хороши. Но только до тех пор, пока вам не понадобится сформировать сложный запрос. В этом случае знание возможностей командной строки позволит вам сэкономить немало времени и сил.

Сегодня мы расскажем о команде find и ещё об одном средстве поиска — команде whereis.

Основная команда поиска имеет следующий синтаксис:

find [область поиска] [условия поиска] [шаблон свойств объекта]

Иными словами, сначала нужно указать, ГДЕ ищем, потом — КАК ищем, потом — ЧТО ищем. Про команду find и все её параметры можно писать целую книжку. Их настолько много, что пытаться осветить все из них в этом материале было бы бессмысленно. Более того, многие параметры используются крайне редко и вряд ли понадобятся рядовому (или даже продвинутому) пользователю.

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

— ваша «домашняя папка»

/ — весь компьютер

. — текущий каталог

.. — каталог более высокого уровня

Кроме того, никто не запрещает ввести вам в качестве области полноценный путь к папке.

А вот параметры поиска можно рассматривать долго. Очень долго.

-name — самый популярный параметр. Ищет по имени файла.

-empty — ищет только пустые файлы и папки. Никаких дополнительных параметров не требуется

-newer — ищет все файлы новее заданного (соответственно, требуется ввести путь к файлу-эталону). «Новее» значит «более поздняя дата изменения».

-path — позволяет точнее указать путь к файлу. Параметр приобретает смысл, если его применять с регулярными выражениями, о которых мы поговорим позже.

-size — задаёт размер файла. Вслед за size вводится число и сокращение:

-iname — поиск по имени без учёта регистра

-ipath — поиск по пути без учёта регистра

Думаете, это всё? Если бы 🙂

Полагаем, нет смысла говорить о том, что комбинировать все эти параметры можно как угодно. Можно даже вбить всё это в одну команду!

Попробуйте поиграться с find и ввести что-нибудь типа:

whereis

Это экзотическая команда поиска программ. Она позволяет узнать, где находится файл той или иной команды, которую вы запускаете в Терминале. Например, можно ввести:

И вам покажут местонахождение бинарного файла команды (/usr/bin/find). Пользоваться этой командой вам придётся нечасто, но иногда она может пригодиться.

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

Источник

Поиск файла через терминал mac os

Как найти файлы и папки в терминале OSX?

Какие существуют команды для поиска в терминале OSX?

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

2015.05.25 Find Comand 1 min

Читайте актуальное: Поиск в файлов и папок в Ubuntu

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

2015.05.25 Find Comand 2 min

Команда Locate

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

2015.05.25 Find Comand 3 min

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

2015.05.25 Find Comand 4 min

Команда mdfind

Именно в этом поиске происходит настройка поиска по определенным параметрам, с указанием метаданных. При этом команда не лишена простого и понятного функционала, как просто осуществить поиск.

Введя простую инструкцию mdfind OSX. Будут найдены все документы с содержанием как внутри так и в название «OSX». Но такой поиск слишком широк, нам не нужна поисковая выдача содержащая несколько сотен объектов, и поэтому в команде mdfind приветствуется использование флагов. Таких как флаг «-onlyin» который дает возможность воспользоваться командой mdfind, но только по определенной конструкции, когда поиск будет производится в том месте который мы теперь можем указать (теперь, после ввода флага «-onlyin»).

Кстати, если использовать «-onlyin» в директории (указывать путь поиска и заканчивать на директории) то поиск будет осуществляется в конечной папке и уровнями ниже. При этом если указать в конце файл, поиск будет производится в конкретном файле.

2015.05.25 Find Comand 5 min

Собственно не так сложно, но при этом лучше конечно же знать спецификацию, попробовать почитать, чтобы понимать какие есть возможности для работы с командой поиска mdfind в терминале Mac OS X.

Под занавес я не мог пропустить один очень интересный флаг для поиска в терминале OS X, команды mdfind. Этот флаг называется «-live». Его функциональные особенности заключаются в том, что он может отслеживать изменения в тех или иных объектах в реальном времени. Все просто, вы прописываете конструкцию запроса, к примеру:

Теперь когда я делаю изменения в конечной директории, и эти изменения касаются непосредственно запроса «OSX», я буду об этом знать.

Источник

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