Qual é a diferença entre -exec com '{}' ';' e -exec com {} / ;?

3

Enquanto tentava escrever alguns scripts bash, encontrei vários usos do parâmetro -exec. No meu contexto, eu estou usando depois do comando find.

Este guia declara usar {} /; depois do exec para passar o nome do arquivo e escapar do; para que o comando termine corretamente.

Esta postagem no fórum mostra o uso de '{}' ';' em vez de {} /;.

Eu experimentei os dois métodos no Ubuntu 11.04 e apenas aquele com aspas simples está funcionando corretamente. Existe uma diferença entre as versões do Linux que faz isso? Eles são intercambiáveis? É preferível um sobre o outro?

    
por rishimaharaj 12.04.2012 / 17:35

1 resposta

3

Seu shell pode atribuir à sequência {} um significado especial (dependendo do tipo de shell e até mesmo se você estiver dentro de um shell script ou não). Para evitar isso, você pode incluí-lo entre aspas '{}' ou escapar assim: \{\} (você precisa usar uma barra invertida \ em vez de uma barra / como você fez na sua pergunta). / p>

Observe também que a mensagem de erro comum se você fizer isso errado (por exemplo, se você usar ; em vez de \; ) é:

find: missing argument to -exec

Veja também a seção correspondente na manpage find .

    
por summentier 12.04.2012 / 18:20