Вы обычно говорите найти, с чего начать поиск, и что искать. Таким образом, синтаксис путей поиска и того, что вы на самом деле пытаетесь найти, отличается.
Для случая использования, который вы упомянули, давайте предположим, что вы хотите найти passwd
файл в /etc
:
find /etc/ -name passwd
Вы хотите сказать , что «начиная с и т.д., искать файл , чье имя являетсяpasswd
если вы не задаете критерии (или «опции» в языке поиска), то поиск выполняет то, что он начинается с указанного вами пути (или путей) и находит все файлы и каталоги ниже, рекурсивно. Таким образом, параметры «фильтруют» эти файлы, чтобы сузить то, что вы ищете.
Найдите все файлы JPG в любом месте вашей файловой системы:
find / -name "*jpg"
Использование кавычек в ваших настройках рекомендуется, потому что в противном случае расширение оболочки может вызвать головную боль.
Найдите любые файлы PDF, независимо от случая, в Документах или Загрузках:
find Documents/ Downloads/ -iname "*pdf"
Если вы это сделаете man find
и прокрутите вниз до пункта ТЕСТЫ, вы найдете все «критерии», которые можно найти, чтобы сузить область поиска. Вы можете искать файлы с определенными именами файлов, принадлежащие конкретным пользователям или группам, имеющие определенные разрешения на файлы, имеющие определенный тип (например, -type d
будут искать только каталоги, в то время как -type f
будут найдены только простые файлы, исключая каталоги), файлы, более новые или более старые, чем определенное количество дней (или минут), пустые файлы, исполняемые файлы и т. д.
На справочной странице find вы также найдете раздел, который называется ACTIONS, он может следовать критериям и будет запускаться любым файлом, который соответствует всем критериям. Таким образом, вы можете find
выполнять такие действия, как удаление найденных файлов, выполнение произвольных команд над ними и так далее.
Но, конечно, основной синтаксис остается:
find [starting path(s)] [conditions or criteria]