Encontre arquivos de documentos e copie-os para outro diretório

4

Esta é uma questão básica, mas estou tentando copiar todos os arquivos .doc que encontro em um diretório e copiá-los para outro diretório.

Eu conheço cada comando:

find -name '*.doc' .

e:

cp filename location 

Como posso combinar os dois comandos?

    
por rararoland 07.11.2010 / 21:49

5 respostas

4
find /path/to/search -name "*.doc" -exec cp {} /path/to/copy/to \;

Se houver muitos arquivos .doc, esta é sua melhor opção para evitar o caractere limite .

    
por 07.11.2010 / 22:05
4

Outra possibilidade:

find /path/to/search -name \*.doc -print0 | xargs -0 cp --target-directory=/destination/path

Isso reduz o número de invocações do comando copy quando comparado ao find -exec (deve ser notavelmente mais rápido se você tiver um grande número de arquivos)

    
por 07.11.2010 / 23:43
1

No solaris, você pode usar o seguinte:

find /path/to/search -name "*.doc" -exec cp {} /destination/directory \;
    
por 30.07.2012 / 03:58
1

Encontre os arquivos pertencentes ao usuário kelly e copie-os para um catálogo: /opt/dir

# cd (into /path to copy files) e.g. cd /opt/
# mkdir dir (where you want to copy the files)
# find / -user kelly -exec cp -rfp {} /opt/dir/ \;
    
por 10.11.2012 / 12:53
0

Para generalizar sua pergunta de ".doc" para ".jpg" ou outros arquivos binários de imagem, você precisaria de ferramentas adicionais de código aberto, como tagim e recordar .

tagim irá marcar suas imagens com palavras-chave (ou classificações) e então você pode classificá-las / filtrá-las usando recuperar e fluir a lista para cp usando xargs para conectá-los:

recollq 'ofJoe ext:jpg' | xargs cp --target-directory=~/Photos/ofJoe
    
por 16.06.2012 / 18:15