Existem várias maneiras de procurar arquivos em sistemas GNU / Linux. As duas formas principais são locate
e find
:
-
locate
usa 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; -
find
procura 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 \;