Software de sincronização para localizar arquivos que moveram caminhos dentro de uma pasta?

4

Digamos que eu tenha uma pasta de imagens que reorganizei em um computador. Eu gostaria de usar esse diretório como base e compará-lo com outra versão em uma unidade de backup. Algum programa de Sincronização / Comparação descobrirá que um arquivo em uma pasta mudou de local dentro de uma pasta de comparação?

Por exemplo, digamos que reorganizei minhas fotos de viagens em pastas por ano com as pastas de viagens dentro da pasta de cada ano. Se eu usar um utilitário de comparação normal, acabo com duas cópias de tudo o que é movido em locais diferentes.

    
por kpierce8 25.10.2009 / 19:21

6 respostas

1

Não conheço nenhum software que detecte renomeações / movimentações em toda a hierarquia de pastas. Isso seria bastante lento, já que seria necessário verificar todos os arquivos para compará-los.

O recurso já foi proposto como um patch para o rsync (google para "rsync detect-renamed"), mas aparentemente ele nunca foi aceito no rsync.

O rsync tem uma versão limitada do que você está procurando:

-y, --fuzzy

This option tells rsync that it should look for a basis file for any destination file that is missing. The current algorithm looks in the same directory as the destination file for either a file that has an identical size and modified-time, or a similarly-named file. If found, rsync uses the fuzzy basis file to try to speed up the transfer.

Isso não funcionará se você mover arquivos entre diretórios.

Dito isto, a maioria dos programas de sincronização tem a opção de remover arquivos no destino se eles estiverem ausentes da origem, portanto, um movimento deve ser replicado como novo + delete, que requer mais cópias, mas funcionaria.

Se você quiser apenas comparar unidades, não sincronizá-las, basta escrever um pequeno script que lista todos os arquivos com seus nomes de arquivos (e talvez uma soma de verificação) e importá-los para uma planilha ou pequeno db. Em seguida, você pode classificar por nome de arquivo ou soma de verificação e comparar diretamente as listas de arquivos. Essa pode ser a rota mais fácil.

    
por 01.12.2009 / 14:38
1

Sim, encontrei um software que faz isso melhor do que qualquer outro: Sunchronizer de arquivos super flexível .

Listados sob os recursos:

Detects moved files. If you reorganized your folders by moving files to different locations, Super Flexible File Synchronizer will detect this and quickly perform the same moves, for example, on your laptop. No extraneous copying!"

    
por 02.08.2010 / 15:43
1

Tudo depende de como você configura o processo de sincronização.

A maioria dos programas de sincronização tem opções sobre o que fazer se um arquivo está / não está na origem ou está / não está no destino. Configurado corretamente para fazer o eco completo de um diretório, um programa de sincronização excluirá arquivos no destino que não estão na origem e copiará dos arquivos de origem que não estão no destino ou que são mais recentes.

No entanto, nenhum programa de sincronização detectará que um arquivo foi renomeado, no sentido de que ele não renomeará o arquivo no diretório de destino. Ele apenas excluirá o arquivo com o nome antigo e, em seguida, copiará o arquivo com o novo nome. Isso levará mais tempo, é claro, mas os programas de sincronização não têm inteligência artificial.

Dito isso, meu próprio produto de sincronização favorito é FreeFileSync (ir para o final da página).

    
por 25.10.2009 / 19:50
1

Syncovery faz o trabalho se você o usou antes de reorganizar o lado da fonte:

  • Detects Moved Files. If you reorganized your folders by moving files to different locations, Syncovery will detect this and quickly perform the same moves on the other side of the sync, rather than deleting and re-copying the files.

Se você não permitir que ele mantenha um banco de dados, não será possível detectar e manipular arquivos movidos.

Se você puder usar o Linux , talvez minha abordagem pessoal possa ajudar:

Because I sync my files to a webdav mount, Synchronization to the webdav destination without move detection would mean large file operations.

I made a small script reorg_Remote_Dir_detect_moves.sh (on github) which is trying to detect the most moved files and then creates a new temporary shell-script with several commands to adjust the remote directory. Since I only take care of the file names the script is no perfect solution.

For safety, several files will be ignored:

  • Files with same (beginning) names on every side
  • Files which are only on the remote side

Skipped files will then be handled by your preferred sync tool (e.g. rsync, unison ...), which you have to use after running the temporary shell-script. So maybe my script is useful for someone. If so (to make it more clear) there are three steps:

  1. Run the shell script reorg_Remote_Dir_detect_moves.sh (on github)
  2. This will create the temporary shell-script /dev/shm/REORGRemoteMoveScript.sh
    => run this to do the moves (will be fast on mounted webdav)
  3. Run your preferred sync tool (e.g. rsync, unison ...)
    
por 03.03.2016 / 12:18
0

Teste o Allway Sync , é grátis e você não terá duplicatas. Eu uso também para fazer backup do meu laptop no meu pc principal.

    
por 25.10.2009 / 19:40
0

Ouvi dizer que o programa SyncToy da Microsoft tem esse recurso.

ou esta ferramenta da Risefly.

    
por 11.03.2010 / 02:10

Tags