Usando arquivos de sincronização apenas comparando o nome do arquivo e não a extensão

5

Estou tentando sincronizar 2 pastas contendo arquivos de áudio de vários tipos (WMA, MP3, M4V, ...).

Eu quero sincronizar essas pastas, mas o processo de sincronização só deve levar em conta os nomes dos arquivos, não as extensões. Portanto, se a pasta A contiver "o subgrupo .mp3" e a pasta B contiver "subúrbios.m4v", o programa de sincronização deverá considerar esses dois arquivos iguais (e não sincronizá-los).

Eu estava olhando para a documentação do rsync, mas não consigo encontrar uma maneira de fazer isso.

Alguém tem uma sugestão, ou talvez sugestões para outro software que possa fazer isso?

    
por thomasvsundert 26.12.2010 / 15:14

1 resposta

2

Você pode criar arquivos vazios com todas as extensões possíveis e chamar o rsync com --ignore-existing .

find A -type f \( -name '*.flac' -o -name '*.m4v' -o -name '*.mp3' -o '*.ogg' -o '*.wma' \) \
     -exec sh -c '
  for base; do
    base=${base%.*};
    for ext in flac m4v mp3 ogg wma; do : >>"$base.$ext"; done;
  done' _ {} +
# Do the same on B …
rsync -a --ignore-existing A B

Você pode estar interessado em mp3fs , um FUSE sistema de arquivos empilhável que fornece uma visão de uma árvore de diretórios onde todos os arquivos de áudio aparecem como MP3. Eu não acho que isso ajudaria particularmente com a sua pergunta, mas pode ser uma maneira alternativa de resolver o seu problema ou provar ser útil.

    
por 27.12.2010 / 20:44