find: os caminhos devem preceder a expressão:

2

Encontrei a seguinte linha aqui :

find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;

Destina-se a tar gzip cada pasta no diretório atual individualmente. Mas a execução retorna o erro:

find: paths must precede expression:

Existem algumas postagens sobre esse erro, mas elas não estão relacionadas à sintaxe usada aqui.

Alguém sabe o que está causando esse erro?

    
por Kohjah Breese 24.08.2014 / 01:06

1 resposta

4

Eu testei isso, e o erro é devido ao segundo \; :

# Works fine
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \;
# Errors out
find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \; \;

Isso pode ocorrer porque o primeiro% escape; encerra o comando para a opção -exec e o segundo% escape; agora se torna parte do comando find e é tratado como um caminho. Isso gera um erro, pois a expressão -type já foi lida.

    
por muru 24.08.2014 / 01:17