Como comparar duas pastas no Mac e ver o que mudou

O Finder não sabe comparar duas pastas. Se você copiou uma pasta para um disco externo, um NAS ou uma nuvem e quer saber se a cópia está completa, ou se tem duas versões de um projeto e quer ver o que mudou, o Mac oferece três caminhos: o comando diff no Terminal, o app FileMerge da Apple (ele vem com o Xcode) ou um gerenciador de arquivos com uma ferramenta de comparação, como o Folia Files. Os três mostram os arquivos que estão em uma só pasta e os que estão nas duas, mas são diferentes.
Por que o Finder não conta isso para você
O mais perto que o Finder chega é Obter Informações (⌘I) em cada pasta, que mostra o tamanho e o número de itens. Se os números batem, as pastas provavelmente são iguais, mas isso não prova nada: um arquivo pode mudar sem mudar de tamanho, como um arquivo de texto em que se corrigiu uma letra. E se não batem, nada indica quais arquivos estão faltando. Só resta abrir as duas pastas lado a lado e conferir os nomes um por um.
Comparar duas pastas no Terminal com diff
O macOS inclui o comando diff e, com duas opções, ele compara pastas inteiras:
diff -rq ~/Pictures/Islandia /Volumes/Backup/Islandia
-r entra em cada subpasta e -q só informa quais arquivos são diferentes, em vez de mostrar o que mudou dentro de cada um. Para não digitar os caminhos, digite diff -rq e arraste cada pasta do Finder para a janela do Terminal.
A resposta tem dois tipos de linha:
Files /Users/alex/Pictures/Islandia/IMG_4021.jpg and /Volumes/Backup/Islandia/IMG_4021.jpg differ
Only in /Users/alex/Pictures/Islandia: IMG_4048.jpg
Only in indica um arquivo ou uma pasta que só existe de um lado (no caso de uma pasta, o conteúdo não é listado). Files … differ quer dizer que o arquivo está nos dois lados, com o mesmo nome e o mesmo caminho, mas com conteúdo diferente. Se o diff não mostrar nada, as duas pastas têm os mesmos arquivos com o mesmo conteúdo.
Vale saber:
- O
difflê os arquivos para compará-los. É exato (as datas não contam), mas lento com uma grande biblioteca de fotos ou vídeos, ou num disco de rede. - Os arquivos ocultos
.DS_Storedo Finder costumam ser diferentes de uma cópia para outra. Deixe-os de fora com-x .DS_Store. - Para conferir só os nomes, sem ler nenhum arquivo (rápido, mesmo num disco lento), compare as duas listas de arquivos:
diff <(cd ~/Pictures/Islandia && find . | sort) <(cd /Volumes/Backup/Islandia && find . | sort)
As linhas que começam com < só existem na primeira pasta; as que começam com >, só na segunda.
Comparar pastas com o FileMerge
O FileMerge é o app de comparação da própria Apple. Ele é gratuito, mas vem com o Xcode, a ferramenta da Apple para desenvolvedores, um download pesado da Mac App Store; as Command Line Tools, mais leves, não o incluem. Com o Xcode instalado:
- Abra o FileMerge pelo menu do Xcode, Xcode › Open Developer Tool › FileMerge (o Xcode só existe em inglês), ou digite
opendiffseguido das duas pastas no Terminal. - Escolha uma pasta à esquerda e outra à direita e clique em Compare.
O FileMerge lista os arquivos das duas pastas: os idênticos em cinza; os diferentes ou presentes de um só lado, em preto. Clique duas vezes num arquivo para ver as duas versões linha por linha. Ele foi feito para código: num arquivo de texto mostra exatamente o que mudou, mas numa foto, num vídeo ou num PDF só consegue dizer que são diferentes.
Comparar duas pastas no Folia Files
O Folia Files tem uma ferramenta Comparar que mostra o resultado numa tabela que dá para ordenar e copia o que falta, num sentido ou no outro. Ela está nas duas edições, a do site e a da Mac App Store.
- Abra as duas pastas em dois painéis, lado a lado (como ver duas pastas lado a lado no Mac). Não é obrigatório, mas a ferramenta parte das pastas dos dois primeiros painéis.
- Escolha Ferramentas › Comparar… (⇧⌘K), ou clique em Ferramentas na barra de ferramentas e depois em Comparar. A ferramenta abre numa aba.
- Confira as pastas Esquerda e Direita. Escolher… pega outra; as setas entre elas trocam as duas de lugar.
- Clique em Comparar.

Cada arquivo recebe um destes quatro estados:
- Diferente: nas duas pastas, mas não igual;
- Apenas à esquerda e Apenas à direita: falta na outra pasta;
- Idêntico: igual nas duas pastas.
Os botões acima da lista contam os arquivos de cada estado e filtram a lista. Os arquivos idênticos ficam ocultos no início, então o que você vê é o que precisa da sua atenção; clique em Idêntico para mostrá-los também. As colunas Esquerda, Modificado (Esquerda), Direita e Modificado (Direita) trazem o tamanho e a data de cada lado, para você saber qual cópia é mais recente.

Rápido ou exato
Por padrão, o Folia Files não lê os arquivos: dois arquivos são Idêntico quando têm o mesmo tamanho e a mesma data de modificação, com dois segundos de tolerância. É rápido, mesmo com milhares de fotos.
Ative Comparar conteúdo (mais lento, exato) quando não der para confiar nas datas. Uma cópia que não manteve as datas originais (feita com cp sem -p, ou baixada de novo pelo site de uma nuvem, por exemplo) faz todos os arquivos parecerem Diferente. Com essa opção, os arquivos do mesmo tamanho são comparados pela impressão digital SHA-256 e as datas são ignoradas. Arquivos de tamanhos diferentes são sempre Diferente.
Mais algumas regras:
- Uma subpasta que existe dos dois lados não aparece como linha: os arquivos dela, sim, com o caminho dentro da pasta.
- Uma pasta que só existe de um lado aparece uma vez, como Pasta, sem o conteúdo.
- Os arquivos ocultos ficam de fora, a não ser que você marque Arquivos ocultos; os
.DS_Storedo Finder são sempre ignorados. - Os arquivos são pareados pelo caminho. Um arquivo renomeado numa das pastas aparece duas vezes: Apenas à esquerda com um nome, Apenas à direita com o outro.
Copiar o que falta
Selecione linhas (⌘-clique ou ⇧-clique para escolher várias) e clique em Copiar Seleção para a Direita → ou em ← Para a Esquerda, na parte de baixo da ferramenta. Os mesmos comandos estão no menu do clique direito (Copiar para a Direita →, ← Copiar para a Esquerda), ao lado de Mostrar à Esquerda no Folia Files e Mostrar à Direita no Folia Files, que levam você a esse arquivo no painel ativo.
- As subpastas que faltam são criadas do outro lado.
- Se o arquivo já estiver lá (um arquivo Diferente), o Folia Files pergunta o que fazer. Manter Ambos é a opção padrão; Se Mais Recente só o substitui se o arquivo copiado for mais recente; Substituir manda a versão antiga para o Lixo depois que a nova é copiada por completo; Ignorar não mexe nele.
- Terminada a cópia, a comparação roda de novo. Os arquivos copiados mantêm a data de modificação, então normalmente passam a Idêntico e saem da lista. As cópias ficam registradas no histórico de Operações, como qualquer outra cópia.
Ver o que mudou dentro de um arquivo
Clique duas vezes num arquivo Diferente, ou clique nele com o botão direito e escolha Mostrar Diferenças. A ferramenta passa para a visualização Arquivos e mostra as duas versões de um arquivo de texto lado a lado, linha por linha: as linhas removidas em vermelho, as adicionadas em verde, com o número de linhas adicionadas e removidas. Para outros arquivos, como fotos ou PDFs, ela diz se são idênticos, com o tamanho.
Qual escolher
- Uma conferência rápida e exata, se você se vira bem no Terminal:
diff -rq. - Duas versões de código ou de arquivos de texto, se você tem o Xcode: FileMerge.
- Conferir se uma cópia ou um backup está completo e corrigir na hora, principalmente com fotos e documentos: a ferramenta Comparar do Folia Files.
Se toda semana você copia à mão as mesmas diferenças, uma sincronização faz isso por você: veja como manter duas pastas sincronizadas no Mac. E para as cópias que você fizer daqui em diante, o Folia Files pode verificar cada arquivo enquanto copia: ative Ajustes › Arquivos e Rede › Verificar cada arquivo copiado para outro disco (relido e comparado, mais lento).


