Qual é o comando + in find / path / -exec '{}' + do?

13

Qual é o + em find /path/ -exec command '{}' + do? ao contrário de find /path/ -exec command '{}' \;

    
por xenoterracide 01.11.2010 / 13:05

2 respostas

17

O '+' faz com que uma grande linha de comando saia de todos os arquivos encontrados para minimizar o número de comandos a serem executados.

Dado o caso em que um comando find encontra quatro arquivos.

find . -type f -exec command '{}' \;

produziria

command file1
command file2
command file3
command file4 

Por outro lado

find . -type f -exec command '{}' \+

produz

command file1 file2 file3 file4
    
por 01.11.2010 / 14:43
4

Da página do manual:

-exec command {} +

This variant of the -exec action runs the specified command on the selected files, but the command line is built by appending each selected file name at the end; the total number of invocations of the command will be much less than the number of matched files. The command line is built in much the same way that xargs builds its command lines. Only one instance of '{}' is allowed within the command. The command is executed in the starting directory.

    
por 01.11.2010 / 13:39

Tags