что делает эта команда?найти команду с параметрами

что делает эта команда?найти команду с параметрами

но вопрос что делает эта команда? Я знаю команду find но про опции нет,типа выражение в кавычках а также -exec и ...

find /var -name "[0-9]*test[A-Z]" -exec  {} /root/{}';'

решение1

find /varуказывает findначать поиск в каталоге /var.

-name "[0-9]*test[A-Z]"— это шаблон поиска, который указывает findна возврат только файлов/папок, соответствующих шаблону "[0-9]*test[A-Z]". Если вы не заключите строку поиска в кавычки, ваша оболочка расширит этот шаблон поиска и попытается выполнить результат. Заключая шаблон поиска в кавычки, вы передаете его в качестве аргумента find /var -name.

В -exec...части исходного вопроса есть синтаксическая ошибка, и так и должно быть -exec {} /root/{} ';'(обратите внимание на пробел перед ';'комментарием dessert и daisy).
Он предписывает findвыполнить следующие аргументы, где {}заменяется на результат поиска find. Обычно их также следует заключать в кавычки, чтобы предотвратить расширение оболочки.

Наконец, ';'определяет, как -execраздел должен обрабатывать результаты поиска при выполнении команды. ';'указывает find запускать команду -execдля каждого отдельного результата поиска. При использовании '+'вместо этого -execкоманда запускается со всеми развернутыми результатами поиска. Это также должно быть заключено в кавычки или экранировано, чтобы предотвратить его расширение оболочкой и создание аргумента для find...-exec.

Небольшой пример, иллюстрирующий разницу между ";"и, "+"выглядит следующим образом.

[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" ";"
./12ltestA
./1ltestA
[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" "+"
./12ltestA ./1ltestA

Связанный контент