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

0

mas uma pergunta o que esse comando faz? Eu sei encontrar comando mas sobre opções não, como expressão na citação e também -exec e ...

find /var -name "[0-9]*test[A-Z]" -exec  {} /root/{}';'
    
por saeed ghasemi 31.05.2018 / 11:42

1 resposta

3

find /var instrui find para iniciar a pesquisa no diretório /var .

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

A parte -exec... da pergunta original tem um erro de sintaxe e deve ser -exec {} /root/{} ';' (anote o espaço antes de ';' como comentada por sobremesa e margarida). Instrui find a executar os argumentos a seguir, em que {} é substituído pelo resultado da pesquisa de find . Você normalmente deve citá-los também para evitar a expansão do shell.

Por fim, o ';' define como a seção -exec deve manipular os resultados da pesquisa ao executar o comando. ';' instrui a localizar o comando -exec para cada resultado de busca. Ao usar '+' , o comando -exec é executado com todos os resultados de busca expandidos. Isso também tem que ser citado ou escapado para evitar que o shell o expanda e faça 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
    
por Thomas 31.05.2018 / 12:14