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


27 февраля 2022

macOS

Взаимодействие с файлами, управление процессами, а также интересные фишки вроде прогноза погоды и не только.

56 полезных команд терминала в macOS на все случаи жизни

Основы

  1. sudo. Запустить команду с правами администратора.
  2. sudo !!. Запустить предыдущую команду с правами администратора.
  3. man ваша_команда. Показать полную документацию по команде.
  4. ваша_команда —help. Вывести краткую справочную информацию по заданной команде.

Взаимодействие с терминалом

  1. history. Показать список последних введённых команд. Добавив в конце число, можно ограничить количество выводимых элементов.
  2. !!. Выполнить последнюю введённую команду.
  3. clear. Полностью очистить окно терминала от команд и сообщений.
  4. &&. Специальный аргумент для последовательного выполнения нескольких команд. Например, первая_команда && вторая_команда.

Работа с папками и файлами

  1. mkdir название_папки. Создать новую папку с указанным именем. Если дописать через пробел другие имена, можно создать сразу несколько папок: mkdir название_первой_папки название_второй_папки.
  2. rmdir название_папки. Удалить пустую папку.
  3. rm -R название_папки. Удалить папку со всем её содержимым.
  4. touch название_файла. Создать новый файл без расширения.
  5. open название_файла. Открыть указанный файл.
  6. cp название_файла название_папки. Копировать файл в указанную папку.
  7. mv название_файла название_папки. Переместить файл в указанную папку.
  8. rm название_файла. Удалить файл без подтверждения.
  9. rm -i название_файла. Удалить файл с запросом на подтверждение (понадобится ввести y для продолжения или n — для отмены).
  10. find название_папки -name название_файла. Найти в указанной папке файлы, имя которых содержит заданные символы.
  11. grep -rl «искомый_текст« название_папки. Найти все содержащие указанный текст файлы внутри заданной папки.

Управление правами доступа файлов и папок

  1. ls -ld название_папки. Показать права доступа указанной папки.
  2. chmod 600 название_папки. Установить права на чтение/запись только для владельца папки. При добавлении аргумента -R права будут распространяться также на содержимое папки.
  3. chmod 600 название_файла. Установить права на чтение/запись файла только для его владельца.
  4. chmod 755 название_файла. Сделать файл исполняемым.

Управление системой

  1. whoami. Показать имя пользователя.
  2. sudo purge. Принудительно очистить оперативную память (потребуется ввод пароля).
  3. uptime. Показать время работы компьютера с момента включения.
  4. sudo shutdown -h now. Отключить компьютер (потребуется ввод пароля администратора).

Управление процессами

  1. top. Отобразить активные процессы с сортировкой по использованию процессора. Информация обновляется.
  2. top -o rsize. Отобразить список процессов с сортировкой по объёму используемой памяти.
  3. kill PID_процесса. Принудительно завершить указанный процесс. PID можно узнать, введя команду top.
  4. killall название_процесса. Принудительно завершить все процессы с указанным именем. Например, убить зависшее приложение.

Взаимодействие с сетью

  1. ping адрес_сервера. Проверить пинг до указанного сервера, например ping google.com, и понять, есть ли интернет‑соединение и насколько оно стабильное.
  2. ifconfig en0. Показать IP- и MAC‑адрес компьютера.
  3. arp -a. Показать список всех устройств в локальной сети с их IP- и MAC‑адресами.
  4. curl -O ссылка_на файл. Скачать файл по заданному URL (работает для протоколов HTTP, HTTPS и FTP).

Разное

  1. curl http://wttr.in/. Показать прогноз погоды на три дня для текущей локации.
  2. say Привет, Лайфхакер! Mac произнесёт любой текст, введённый после команды.
  3. nc towel.blinkenlights.nl 23. Просмотреть четвёртый эпизод «Звёздных войн» в виде текстовой графики.
  4. cal Показать календарь на текущий месяц. Параметр -A 1 добавляет указанное количество месяцев после текущей даты, а -B 1 — до неё.

Горячие клавиши для работы с терминалом macOS

  1. Tab. Автоматически завершить имя файла или папки после нескольких введённых символов.
  2. Control + A. Переместить курсор в начало текущей строки.
  3. Control + E. Переместить курсор в конец текущей строки.
  4. Control + U. Удалить текст от курсора до начала строки.
  5. Control + K. Удалить текст от курсора до конца строки.
  6. Control + W. Удалить слово перед курсором.
  7. Control + T. Поменять местами два символа перед курсором.
  8. Esc + T. Поменять местами два слова перед курсором.
  9. Control + L. Очистить вывод предыдущей команды.
  10. Option + →. Переместить курсор на одно слово вперёд.
  11. Option + ←. Переместить курсор на одно слово назад.
  12. Control + F. Переместить курсор на один символ вправо.
  13. Control + B. Переместить курсор на один символ влево.
  14. Control + Z. Приостановить выполнение текущего процесса.
  15. Control + C. Прервать процесс, который в данный момент выполняется.
  16. Command + D. Разделить окно на две панели для параллельной работы. Последующее нажатие ещё раз поделит пополам выбранную панель.
  17. Shift + Command + D. Закрыть панель.

Читайте также 🧐

  • OnlySwitch — одна утилита для управления всеми функциями macOS
  • Всё, что нужно знать о режиме восстановления в macOS
  • Yippy — бесплатный менеджер буфера обмена для macOS, который даст фору многим аналогам

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.

Перейти к контенту

поиск mac os терминал

Как найти файлы в MAC используя командную строку (терминал)?

Если вы по старой линуксовой привычке уже набирали в маковской консоли команду locate, то сталкивались с тем, что она не работает. Вместо этого ее сервис предлагают сначала запустить через launchd.

Делать этого не нужно, потому что на «маке» есть намного лучший способ искать файлы — это утилита mdfind, которая ищет по базе данных Spotlight.

поиск mac os терминал

Поиск mac os в терминале

Сразу нашел архивы на внешнем диске 🙂

Пользоваться mdfind не сложнее, чем написать mdfind <строка для поиска>. Обратите внимание, что поиск ведется не только в названии файлов, но и внутри документов, и в метаданных.

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

поиск mac os терминал

поиск mac os терминал

У mdfind, как ты мог догадаться, есть полезные параметры. Так, -live запустит эту утилиту в постоянном режиме и будет выводить находки по мере их появления, -onlyin <каталог> ограничит область поиска одним каталогом, а -name <файл> заставит mdfind искать строку только в названиях файлов и нигде больше.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)

Загрузка…

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

В статье рассмотрены синтаксис и примеры основных команд для работы с папками и файлами в командой строке 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

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 становится по-настоящему полезной, если вы знаете основы построения регулярных выражений. Об этом мы поговорим в следующей статье.

Понравилась статья? Поделить с друзьями:
  • Как найти величину острого угла между плоскостями
  • Как найти мощность дизеля
  • Как найти работу после банка
  • Как найти рукопашный бой
  • Как исправить 301 редирект