Поиск Mac через терминал?

там какие-либо команды должны искать Ваш Mac с помощью терминала? Я пытался использовать grep для поиска, но это кажется несколько безразличным, и ничто не подходит.

Например, я ввел бы "grep Файлы" (Имя папки), и оно просто печатает пустую строку, и ничего не происходит.

22
задан 18.08.2010, 12:46

4 ответа

Можно также использовать mdfind управляйте для выполнения поиска с Центром внимания.Более подробная информация.

Использовать mdfind -name searchterm для получения файлов с именем searchterm. Использовать mdfind searchterm выполнить поиск на имени файла и содержании.

21
ответ дан 07.12.2019, 09:54

Если Вы просто хотите найти файлы с определенным именем, использовать find

Страница справочника может быть найдена ЗДЕСЬ или путем ввода man find при терминальной подсказке.

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

find . -name file_name -print

Это будет искать файл, названный "file_name", запускающимся в текущем каталоге и ищущим ниже, и печатать файлы с тем именем.

find ~ -name ".DS_Store" -delete

Это найдет все.DS_Store файлы и удалит их.

Можно искать по имени, regex, дата. Можно действовать на файл в любом Unix путь с -exec предикат.

Можно также использовать, находят как запуск более сложного конвейера действий. Пример:

find . -type f -print | egrep -i '\.m4a$|\.mp3$'

Найдет все файлы с расширениями .m4a или .mp3

find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l

Даст Вам количество тех файлов.

25
ответ дан 07.12.2019, 09:54

Если Вы хотите перерыть целую папку, просто используйте-r на grep:

grep -r pattern folder/to/search

С находкой можно также использовать xargs:

find folder/to/search -name '*.txt' | xargs grep pattern

или удостоверяться, что Вы ищете два файла за один раз и поэтому указали имена файлов:

find folder/to/search -name '*.txt' | xargs grep -n2 pattern
5
ответ дан 07.12.2019, 09:54

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

Если Вы хотите использовать более сложную спецификацию файла, затем используют find.

find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print
2
ответ дан 07.12.2019, 09:54

Теги

Похожие вопросы