Cópia de arquivo com filtro

3

Como posso copiar todos os arquivos com uma certa extensão de um local para outro?

Por exemplo, eu quero copiar todos os meus arquivos de música para o meu mp3 player, mas a minha pasta de música no meu disco rígido contém capa, bem como música. Estou ciente de que poderia simplesmente copiar tudo e excluir todas as imagens, mas estou esperando por uma solução melhor do que isso. Eu vi uma solução usando o rsync, como

rsync -av --exclude "*/" --include "*.mp3" --include "*.ogg" --include "*.wma" --include "*.flac" ~/Music/. /media/E100/Music

mas isso se queixa muito de não conseguir alterar o grupo dos arquivos e, por algum motivo, não copiou todos os arquivos (deixou alguns diretórios em branco). Além disso, eu preferiria que a data de criação dos arquivos fosse a hora atual, pois isso provavelmente funcionaria melhor com o banco de dados interno do mp3 player.

Outras coisas que eu realmente gostaria: Seria bom se ele não sobrescrevesse os arquivos, mas apenas copiasse os arquivos mais recentes, se eu tivesse que apagar todos os arquivos e depois copiar todo o diretório, Eu também posso lidar com isso.

    
por a_m0d 04.09.2009 / 16:42

1 resposta

4

Parece que você já tem a solução que deseja com o rsync.

Se estiver reclamando sobre permissões e não conseguir copiar certas coisas, tente executá-las com sudo

sudo rsync -auv etc etc

EDITAR: O sinalizador -a é o que está causando a preservação dos tempos. O -a flag é um alias para -rlptgoD e o -t flag é o que faz com que os tempos sejam preservados. Você pode preferir usar o rsync assim:

sudo rsync -rlpgoDuv etc etc

também: para cópias particularmente longas, convém usar o --progress flag em vez de -v .

Parece que isso funciona:
sudo rsync -rlpuv --progress --include "*/" --include "*.mp3" --include "*.ogg" --include "*.wma" --include "*.flac" --exclude "*" ~/Music/ /media/E100/Music
    
por 04.09.2009 / 16:46

Tags