Preciso usar -r com o comando cp ao usar o comando find no Linux?

0

Eu tenho documentos espalhados entre vários diretórios em um determinado caminho, por exemplo / media / devicename / name_of_directories . Eu usei o comando find para ajudar a localizar certos arquivos, por exemplo .doc, docx , etc

find . -type f -regextype posix-egrep -regex '.*/.*/.*\.(doc|docx)' -exec cp -r {} somedirectory \;

Eu sei que o comando cp -r é usado se eu estou copiando arquivos de um determinado diretório, mas no caso do meu comando find , é necessário e se sim ou não, por quê?

    
por PeanutsMonkey 17.03.2013 / 00:18

2 respostas

2

O sinalizador -r em cp significa recursivo. Você o usa ao copiar pastas inteiras, porque instrui o cp a descer para a pasta e recursivamente copiar tudo o que encontra dentro.

Você não precisa fazer isso quando está apenas copiando arquivos individuais, porque eles são (conceitualmente) uma única entidade. Como Ярослав Рахматуллин diz, rodar o cp recursivamente em um único arquivo não faz sentido, porque não há nada para recorrer.

Veja link

ou digite man cp para mais informações.

    
por 17.03.2013 / 00:52
1

Você não pode copiar um arquivo recursivamente, apenas uma pasta.

    
por 17.03.2013 / 00:19

Tags