Простая команда unix, что такое {} и \; за

С помощью этого набора команд, что такое {} и \; символы для?

find . -name '*.clj' -exec grep -r resources {} \;
13 голосов | спросил Berlin Brown 15 Jpm1000000pmThu, 15 Jan 2009 17:56:28 +030009 2009, 17:56:28

4 ответа


0

См. поиск людей . (особенно часть о -exec)

При использовании -exec для запуска команды для каждого из найденных файлов, {} заменяется именем каждого найденного файла, а выполнение команды завершается \;

В вашем примере все файлы, найденные в текущем каталоге (.), соответствуют имени *.clj запустит команду grep -r resources (чтобы найти строку resources, если он существует в каждом из этих файлов).

На самом деле это несколько избыточно, так как -r для рекурсивного поиска в подкаталогах, и это то, что find уже делает.

ответил Adam Bellaire 15 Jpm1000000pmThu, 15 Jan 2009 17:59:10 +030009 2009, 17:59:10
0

В find параметр -exec получает остальные параметры до; (точка с запятой), который должен быть экранирован, поэтому \ ;. В этом интервале {} заменяется проверяемым именем файла.

ответил falstro 15 Jpm1000000pmThu, 15 Jan 2009 17:59:40 +030009 2009, 17:59:40
0

Рассмотрим альтернативную команду, которую я нахожу более понятной:

find . -name *.clj | xargs grep -r resources 
ответил paxos1977 16 Jam1000000amFri, 16 Jan 2009 04:25:49 +030009 2009, 04:25:49
0

Строка {} в find заменяется на путь к текущему файлу.

Точка с запятой используется для завершения команды оболочки, вызываемой утилитой find.

Его нужно экранировать или заключать в кавычки, чтобы он не интерпретировался оболочкой, поскольку ; является одним из специальные символы, используемые оболочкой (операторы списка).

См. также: Почему обратная косая черта и точка с запятой требуются с помощью опции -exec команды find?

ответил kenorb 18 +04002014-10-18T16:27:03+04:00312014bEurope/MoscowSat, 18 Oct 2014 16:27:03 +0400 2014, 16:27:03

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132