Copiando apenas JPG de uma estrutura de diretório para outro local Linux

5

Desejo recursivamente percorrer as pastas de uma estrutura de diretórios e copiar qualquer arquivo .jpg que encontrar em outro diretório.

Acho que tive a ideia errada com:

cp -R photos/*.jpg /cpjpg

Como posso fazer isso a partir da linha de comando no Ubuntu?

Excellll
fonte
Você terá uma resposta melhor no superuser.com . Mas você não precisa fazer nada - se pessoas suficientes concordarem que a questão será movida automaticamente.
ChrisF
Você quer que todos eles acabem em um diretório (nivelado) ou você quer preservar a estrutura?
gbarry

Respostas:

9

Isso copiará todos os arquivos que terminam em .jpg ou .jpeg (também não diferenciam maiúsculas e minúsculas) no diretório atual e em todos os seus subdiretórios no diretório / cpjpg. A estrutura do diretório não é copiada.

find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -exec cp '{}' /cpjpg \;
Vinko Vrsalovic
fonte
4

Isso preservará a estrutura do diretório.

find photos/ -type f \( -iname '*.jpg' -o -iname '*.jpeg' \) -print0 |xargs -0 tar c |(cd /cpjpg ; tar x)
anfetaminas
fonte