O que o -exec em 'find… -exec…' do?

1

Estou aprendendo a pesquisar e estou confuso com esse comando.

find -name "*.swp" -exec rm {} ';'

Você pode me explicar o que esse comando significa?

    
por Person.Junkie 14.09.2014 / 11:01

4 respostas

1
O comando

exec executa um comando específico para cada arquivo encontrado. Ele trata seus argumentos como um subprocesso a ser executado. É uma das opções mais poderosas e perigosas fornecidas pelo comando find .

Quando você executar o comando acima find , procure o padrão fornecido nos diretórios e subdiretórios e, se encontrado, ele retornará o nome do arquivo com o caminho relativo do diretório atual.    para exapmle

  [guru@guru-Aspire~]$ touch temp1.swp temp2.swp temp3.swp   #(created 3 file)

  [guru@guru-Aspire~]$ find -name "*.swp" 
  ./temp2.swp
  ./temp3.swp
  ./temp1.swp

find leva todos os argumentos depois de -exec como parte do comando até que um argumento que consiste em ; seja alcançado e substitua {} pelo nome de arquivo pesquisado pelo comando find .

O nome do arquivo e ; precisam ser separados para que seja protegido da expansão. Então, podemos escapar usando \; ou podemos usar ou citar como ';'

    
por g_p 14.09.2014 / 11:34
2

-exec é uma opção de find . O que está acontecendo aqui é que todos os arquivos correspondentes a *.swp são removidos um por um. {} é o caminho completo e o nome do arquivo, não tenho certeza sobre a indexação de ; . Mas o primeiro termo de find deve ser um diretório ou caminho para um. Para saber mais no terminal digite man find . man manuais podem ser pesquisados usando o apropos command .

    
por rhubarbdog 14.09.2014 / 11:26
1

Em vez de lhe dar um peixe, veja como pescar: Digite isso no console:

 man find

Ou isso (não funciona em todos os sistemas):

info find

Veja também: LDP: Bash para iniciantes e aprenda a distinguir entre um comando e seus argumentos;)

    
por runlevel0 14.09.2014 / 11:44
0

Essa linha simplesmente encontra arquivos recursivamente (em cada subdiretório de comando emitido) com a extensão swp e os remove. Aqui está um guia: link Este guia explica como usar a opção -exec com o comando find link

    
por kenn 14.09.2014 / 11:21