o que este comando faz? encontre o comando com opções

o que este comando faz? encontre o comando com opções

mas uma pergunta: o que esse comando faz? Eu sei o comando find, mas não há opções, como expressão entre aspas e também -exec e ...

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

Responder1

find /varinstrui findpara iniciar a pesquisa no diretório /var.

-name "[0-9]*test[A-Z]"é o padrão de pesquisa para instruir finda retornar apenas arquivos/pastas que correspondam ao padrão "[0-9]*test[A-Z]". Se você não citar a string de pesquisa, seu shell expandirá esse padrão de pesquisa e tentará executar o resultado. Ao citar o padrão de pesquisa, você o passa como argumento para find /var -name.

A -exec...parte da pergunta original tem um erro de sintaxe e deveria ter -exec {} /root/{} ';'(observe o espaço antes ';'comentado por sobremesa e margarida).
Ele instrui finda executar os seguintes argumentos, onde {}é substituído pelo resultado da pesquisa de find. Normalmente você também deve citá-los para evitar a expansão do shell.

Por último, ';'define como a -execseção deve tratar os resultados da pesquisa ao executar o comando. ';'instrui find a executar o comando de -execpara cada resultado de find. Ao usar '+', o -execcomando é executado com todos os resultados da localização expandidos. Isso também deve ser citado ou escapado para evitar que o shell o expanda e apresente um argumento para find...-exec.

Um pequeno exemplo que ilustra a diferença entre ";"e "+"é o seguinte.

[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

informação relacionada