там какие-либо команды должны искать Ваш Mac с помощью терминала? Я пытался использовать grep для поиска, но это кажется несколько безразличным, и ничто не подходит.
Например, я ввел бы "grep Файлы" (Имя папки), и оно просто печатает пустую строку, и ничего не происходит.
Можно также использовать mdfind
управляйте для выполнения поиска с Центром внимания.Более подробная информация.
Использовать mdfind -name searchterm
для получения файлов с именем searchterm
. Использовать mdfind searchterm
выполнить поиск на имени файла и содержании.
Если Вы просто хотите найти файлы с определенным именем, использовать 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
Даст Вам количество тех файлов.
Если Вы хотите перерыть целую папку, просто используйте-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
grep
ожидает и шаблон и спецификацию файла. Если Вы отсутствуете затем, это использует то, что передается как шаблон и ожидает данных для поиска через стандартный вход.
Если Вы хотите использовать более сложную спецификацию файла, затем используют find
.
find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print