Eu tenho um diretório com muitos livros em formato PDF (cerca de 2 GB de tamanho).
Durante a leitura, muitas vezes deixo notas e anotações nos arquivos. Ocasionalmente, faço um backup em um disco rígido externo. Como não me lembro quais arquivos foram modificados desde o último backup, apenas copio e sobrescrevo tudo.
O Windows verifica se os arquivos com o mesmo nome são idênticos (por conteúdo) antes de substituí-los? Se não, como eu faria exatamente isso?
Robocópia.
O Windows não pode diferenciar entre arquivos idênticos e modificados se você copiar usando o Windows Explorer.
O Windows pode diferenciar entre arquivos idênticos e modificados se você copiar usando Robocopy , que é um utilitário de cópia de arquivo incluído no Windows (Vista, 7, 8.1 e 10).
Não há necessidade de usar ferramentas de terceiros.
Você pode salvar este script como um arquivo em lote e executá-lo novamente sempre que quiser fazer um backup:
robocopy /e c:\PDFs p:\PDFs
/e
(ou/s
) não é necessária se todos os seus PDFs estiverem na raiz da pasta referenciada no script, mas se você quiser incluir subpastas , use/s
. Se você deseja incluir subpastas e subpastas vazias , use/e
.Esse script simples é tudo que você precisa.
O Windows não faz isso. No entanto, ele solicitará que você substitua os arquivos com o mesmo nome e você poderá selecionar manualmente se desejar.
Para uma solução mais fácil, use o FreeFilesSync para comparar as pastas e sobrescrever apenas os arquivos alterados/atualizados (opção Espelho e selecione
File time and size
em Configurações de comparação ).Sim e não! O Windows Explorer verifica apenas os metadados (tamanho do arquivo, datas, etc.).
Mas você pode usar um script, por exemplo , powershell ( veja aqui ), que vem com (a maioria) ferramentas do Windows ou de terceiros que permitem comparar/copiar arquivos usando somas de verificação de arquivo, por exemplo, MD5 ou SH1 hashing ( veja aqui e/ou use um mecanismo de pesquisa ).
Eu mesmo gosto de usar o software checksum compare ( veja aqui ), ele permite comparar arquivos e diretórios, incluindo checksums de arquivos, e funciona a partir de um pen drive USB.
Se você não precisa comparar o conteúdo do arquivo e deseja apenas copiar arquivos "mais recentes", pode usar qualquer método de cópia avançado, como xcopy, robocopy, etc.
Nota: os diferentes métodos de hash têm vantagens e desvantagens (principalmente confiabilidade versus velocidade). Para mim, o MD5 é mais do que suficiente para esse tipo de comparação de arquivos, mas isso é uma preferência pessoal. Veja aqui mais informações sobre esse tópico.
Resumindo: Não
O Windows não aponta isso de maneira direta.
Bem, ele faz , mas como tudo no Windows é ambíguo na melhor das hipóteses. Você será solicitado a informar conflitos de nome e, dependendo da versão do Windows, obterá uma caixa de diálogo mais ou menos compreensível com várias opções para escolher, com uma nota adicional ("Blah blah, tamanho diferente, mais recente"). Você pode então, um por um, escolher se deseja ou não manter o arquivo modificado, e você tem a opção de aplicar isso a todas as correspondências "idênticas".
Agora é claro que é Windows, então você não tem garantia de que "mais novo" realmente significa mais novo e não sabe o que é "idêntico" (é apenas a colisão de nomes, é a mudança de tamanho, é a data de modificação ou é tudo?).
Alternativas
Existe uma grande variedade de programas de sincronização de arquivos, gratuitos e comerciais, que são um pouco melhores na medida em que verificam se um arquivo foi modificado antes de sobrescrevê-lo,
rsync
sendo a tradicional ferramenta mãe de todas, mas também sendo um usuário menos exigente -amigável do que algumas pessoas podem desejar.No entanto, eu não recomendo nenhum deles porque eles não estão fundamentalmente melhorando as coisas.
Pessoalmente, se você não tem medo de um pouco de linha de comando (sempre poderia criar um arquivo em lotes!) Eu recomendaria o excelente zpaq de Matt Mahoney . Isso é basicamente ZIP, exceto que comprime muito melhor e desduplica em tempo real.
Como isso é melhor ?
Bem, as ferramentas de comparação de soma de verificação são ótimas e tal. Especialmente quando você passa pela rede, nada supera a
rsync
execução em ambas as extremidades, é simplesmente incrível. Mas, embora uma ferramenta de sincronização típica faça o trabalho muito bem (e melhor que o Explorer), não é nisso que ela é melhor.Escrever em uma unidade externa, comparando ou não as somas de verificação, tem algumas coisas com as quais você precisa lidar:
Para comparar as somas de verificação, primeiro você precisa ler os arquivos. Ponto final. O que significa que, para alguns milhares de arquivos, você paga pela latência de atravessar a estrutura de diretórios, abrir arquivos em um link de alta latência e ler os arquivos milhares de vezes. Além disso, transferindo-os em pequenas unidades por meio de um fio de alta latência. Bem, isso é péssimo, é um processo muito caro.
Em seguida, você deve gravar os arquivos que foram alterados, novamente com várias operações de alta latência, como abrir arquivos e sobrescrever dados, e novamente um por um . Isso é uma droga duas vezes porque não é apenas inerentemente inseguro (você perde o arquivo que está sendo substituído se o seu gato tropeçar no cabo USB), mas também com discos rígidos modernos ( como muitas unidades externas), pode ser terrivelmente lento, até um único megabyte por segundo se você não tiver sorte. Isso e a latência de milhares de pequenas transferências se acumulando.
Uma ferramenta de cópia de arquivo bem escrita pode ser capaz de lidar com o problema de segurança copiando um arquivo temporário e renomeando-o atomicamente depois (mas isso adiciona ainda mais sobrecarga!).
Agora, um formato de arquivo como o zpaq criará um arquivo que já contém as somas de verificação dos arquivos, eles podem ser lidos de forma rápida e sequencial a partir de um local. Em seguida, localmente (localmente significa "do seu lado do cabo", onde você presumivelmente tem um disco razoavelmente rápido conectado via SATA ou M.2 ou algo assim) compara somas de verificação, comprime diferenças e apenas anexa grava os dados compactados sequencialmente no arquivo existente arquivo. Sim, isso significa que o arquivo vai crescer um pouco com o tempo porque você carrega toda uma história. Infelizmente, supere isso, o custo é muito moderado graças ao diferencial e à compressão.
Este método é mais rápido e mais seguro ao mesmo tempo. Se você puxar o cabo no meio da operação, seu backup atual será interrompido (obviamente!). Mas você não perde seus dados anteriores. Todas as transações que passam por links "lentos" são estritamente sequenciais, grandes transferências, o que maximiza o rendimento.
XCOPY/D só copiará arquivos se a origem for mais recente que o destino. (XCOPY/S/D para uma cópia recursiva)
Microsoft SyncToy
A Microsoft cria um ótimo aplicativo para PC com Windows chamado SyncToy, onde você especifica pares de "pasta esquerda e pasta direita" e escolhe ecoar alterações da esquerda para a direita, contribuir com alterações da esquerda para a direita sem excluir a direita ou sincronizar entre a esquerda e a direita. Há uma interface de usuário para visualizar as alterações antes de confirmar.
Se um arquivo for detectado como idêntico, ele será ignorado, que é a funcionalidade que você está procurando.
Uso o modo Echo há cerca de 10 anos para espelhar gradualmente as alterações do meu PC de mesa para uma unidade externa.
https://www.microsoft.com/en-us/download/details.aspx?id=15155