Есть ли команды для поиска вашего Mac с помощью терминала? Я попытался использовать usin grep для поиска, но он кажется не отвечающим и ничего не появляется.
Например, я набрал бы «grep Files» (имя папки), и он просто печатает пустую строку, и ничего не происходит.
Ответы:
Вы также можете использовать
mdfind
команду для выполнения поиска с помощью Spotlight. Больше информации здесь .Используйте
mdfind -name searchterm
для того, чтобы получить файлы с именемsearchterm
. Используйтеmdfind searchterm
для поиска по имени файла и его содержимому.источник
Если вы просто хотите найти файлы с определенным именем, используйте
find
Справочную страницу можно найти ЗДЕСЬ или набрав
man find
в терминале подсказку.По сути, find рекурсивно ищет заданные вами критерии соответствия файла. Самый простой пример:
find . -name file_name -print
При этом будет выполнен поиск файла с именем «имя_файла», начиная с текущего каталога и выполнив поиск ниже, и распечатает файлы с этим именем.
find ~ -name ".DS_Store" -delete
Это найдет все файлы .DS_Store и удалит их.
Вы можете искать по имени, регулярному выражению, дате. Вы можете использовать файл любым способом Unix с помощью
-exec
предиката.Вы также можете использовать поиск как начало более сложного набора действий. Пример:
find . -type f -print | egrep -i '\.m4a$|\.mp3$'
Найдут все файлы с расширениями .m4a или .mp3
find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l
Даст вам количество этих файлов.
источник
-print
это единственный предикат, его можно опустить; кроме того, есть простой доступный globbing. Таким образом, поиск всех.txt
файлов в каталогеfoo
будет сделан сfind foo -name \\*.txt
find .
рекурсивно с cwd. Попробуйте набратьfind .
в своем корневом каталоге!Если вы хотите выполнить поиск по всей папке, просто используйте -r на grep:
С помощью find вы также можете использовать xargs:
или чтобы убедиться, что вы ищете два файла одновременно и, следовательно, указаны имена файлов:
источник
grep
ожидает как шаблон, так и спецификацию файла. Если один из них отсутствует, он использует то, что передается как шаблон, и ожидает поиска данных через стандартный ввод.Если вы хотите использовать более сложную спецификацию файлов, используйте
find
.источник
-exec
предикат вfind
.