No seu exemplo, \;
faz parte do comando find. (veja encontro do homem 1 ). O mesmo é verdade para {}
.
Este comando preciso indica:
- Encontre tudo no diretório atual (o ponto ou, no seu caso,
./
) - Onde o nome do arquivo ou diretório é
file_1
- E, em seguida, exec ute o seguinte comando:
cp {} ./
em que {} substituirá o arquivo ou diretório encontrado.
O resultado é que todos os arquivos e diretórios chamados file_1 serão copiados para o seu diretório atual. (e eles provavelmente serão substituídos se houver vários arquivos ou diretórios com esse único nome)
Tanto para a explicação geral. Agora os detalhes da coleta:
O comando que será executado para cada item encontrado é:
cp full_path_to_item ./
Este é o conteúdo entre o -exec
e o ;
No entanto, o ponto e vírgula é um caractere especial no bash. Se não fizermos nada de especial com ela, a casca vai comê-lo. Então, escapamos com uma barra invertida. Isso diz ao shell para deixá-lo sozinho e passá-lo para encontrar.
Note que você precisará fazer isso para todos os caracteres especiais. Por exemplo. você não pode simplesmente usar um asterisco no nome do arquivo (então não encontre. -tipo f -name * .mp3 ....)