Existem várias maneiras de procurar arquivos em sistemas GNU / Linux. As duas formas principais são locate e find :
-
locateusa um banco de dados de arquivos conhecidos em todo o sistema para localizar documentos. É muito útil, mas requer manter esse banco de dados atualizado (comupdatedb), o que pode levar muito tempo; -
findprocura arquivos em um determinado diretório. Geralmente é mais lento quelocate(não tem banco de dados persistente), mas é mais bem ajustado.
Portanto, se você precisar encontrar todos os arquivos no sistema que correspondem aos seus critérios, use locate :
$ locate --regex "avi|flv" | grep '\.\(avi\|flv\)$'
ao passo que se você estiver pesquisando em um diretório específico e quiser ter certeza de não ter efeito de atraso do cache, poderá usar find :
$ find /path/to/your/directory -regex '.*\.\(avi\|flv\)'
Agora, para copiar esses arquivos para uma pasta específica:
$ locate --regex "avi|flv" | grep '\.\(avi\|flv\)$' | xargs cp /path/to/specific/folder
ou
$ find /path/to/your/directory -regex '.*\.\(avi\|flv\)' -exec cp {} /path/to/specific/folder \;