Copiar imagens recursivamente de uma pasta para a raiz de outra?

0

Portanto, tenho uma máquina virtual do Windows executando esse programa. Os detalhes são os seguintes:

  1. O programa não tem funcionalidade de pesquisa recursiva.
  2. Eu tenho muito espaço livre em disco.
  3. Eu tenho excesso de lixo na minha pasta de fotos. (Eu só quero copiar as fotos, suponha que eu tenha fotos que vão desde todas as extensões de arquivo de imagem conhecidas (excluindo arquivos))
  4. Desejo usar a linha de comando para procurar recursivamente todas as imagens em meu diretório inicial e copiar todas elas para o diretório atual SEM criar subpastas que correspondam à pasta de imagens. (Ex: ~/cyndaquil.png é copiado para ./cyndaquil.png , enquanto ~/foo/bar/quilava.png é copiado para ./quilava.png . Além disso, meu diretório inicial está uma bagunça.)

Então, existe algum comando que eu possa usar para fazer isso?

    
por user245115 08.04.2015 / 00:27

2 respostas

1

Se você não se importa com as colisões de nomes ( foo/bar/name1 vs foo/other/name1 (mas veja man cp para --backup=numbered ), você pode ler man find para ver o que isso faz:

find $HOME -type f -iname '*.png' -exec cp --backup=numbered {} $PWD \;
    
por waltinator 08.04.2015 / 00:53
1

Isto irá copiar (irá ecoar) todos os arquivos que o comando file acha que é algum tipo de imagem:

for i in $(find . -type f -print0 | xargs -0 file | grep " image " | cut -d: -f1 ) ; do echo cp "$i" $PWD; done
    
por waltinator 08.04.2015 / 02:13