O que está errado no comando follwing -exec

1

Estou com erro no comando follwing

cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {}

erro:

find: missing argument to '-exec'
    
por Harsh 19.09.2014 / 09:08

3 respostas

5

Você precisa marcar seu executivo como concluído com \; Seu comando ficaria assim:

cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {} \;

BTW: você não precisa digitar em um diretório. find pode pegar um caminho completo onde procurar. Então

find /opt/lampp/htdocs/EspoCRM-2.5.2/data/ -type d -exec chmod 775 {} \;

também deve funcionar como chamada de busca.

    
por frlan 19.09.2014 / 09:19
3

Como outros já disseram, o -exec do find precisa ser finalizado. No entanto, sugiro usar + em vez de \; . Isso funciona apenas para alguns comandos, mas usar + criará e executará um comando muito mais eficiente.

Por exemplo, se você tiver três arquivos ( a , b e c ) em um diretório e executar find -exec echo {} \; , ele será executado:

echo a
echo b
echo c

No entanto, se você usar find -exec echo {} + , ele selecionará dinamicamente quantos argumentos o ambiente suportar (há um limite) e, como xargs , os vincula ... Então, o que é realmente executado é:

echo a b c

Como eu disse antes, isso só funcionará se o seu comando suportar vários arquivos por vez. chmod é um desses. Você pode ver a página man chmod :

SYNOPSIS
       chmod [OPTION]... MODE[,MODE]... FILE...
       chmod [OPTION]... OCTAL-MODE FILE...
       chmod [OPTION]... --reference=RFILE FILE...

As reticências em FILE... significam que pode demorar mais de um arquivo.

Então, encadear todos eles juntos significa que executamos muito menos instâncias de chmod , o que é bom porque há uma grande sobrecarga (em pequenas operações como essa) para dar um novo comando.

Em resumo, usar + é mais rápido.

    
por Oli 19.09.2014 / 12:08
1

Você precisa encerrar seu comando com \;

Tente isto:

cd /opt/lampp/htdocs/EspoCRM-2.5.2 && find data -type d -exec chmod 775 {} \;
    
por hermest 19.09.2014 / 09:24