Encontrar arquivos duplicados por nome é simples, mas identificar duplicatas com conteúdo idêntico requer uma abordagem mais robusta. Este método utiliza um script Python para calcular hashes de arquivos, garantindo precisão total e automatizando o processo.
Crie um arquivo chamado find_duplicates.py com o seguinte conteúdo:
import os
import hashlib
from collections import defaultdict
def calculate_hash(file_path):
"""Calcula o hash SHA-256 do conteúdo do arquivo"""
hasher = hashlib.sha256()
with open(file_path, 'rb') as f:
while chunk := f.read(8192):
hasher.update(chunk)
return hasher.hexdigest()
def find_duplicate_files(directory):
"""Encontra arquivos duplicados por conteúdo em um diretório"""
hashes = defaultdict(list)
for root, _, files in os.walk(directory):
for filename in files:
file_path = os.path.join(root, filename)
try:
file_hash = calculate_hash(file_path)
hashes[file_hash].append(file_path)
except (IOError, OSError):
continue
duplicates = [paths for paths in hashes.values() if len(paths) > 1]
return duplicates
if __name__ == "__main__":
import sys
if len(sys.argv) != 2:
print("Uso: python find_duplicates.py <diretório>")
sys.exit(1)
directory = sys.argv[1]
duplicates = find_duplicate_files(directory)
if duplicates:
print(f"Encontrados {len(duplicates)} grupos de arquivos duplicados:")
for i, group in enumerate(duplicates, 1):
print(f"\nGrupo {i}:")
for file_path in group:
print(f" - {file_path}")
else:
print("Nenhum arquivo duplicado encontrado.")
Abra o terminal, navegue até o diretório onde o script foi salvo e execute:
python find_duplicates.py /caminho/para/diretorio
Substitua /caminho/para/diretorio pelo caminho do diretório que você deseja analisar.
| Arquivo | Hash SHA-256 | Status |
|---|---|---|
| /docs/relatorio_final.pdf | 9f86d081884c7d659a2feaa0c55ad015 | Único |
| /backup/relatorio_final.pdf | 9f86d081884c7d659a2feaa0c55ad015 | Duplicado |
| /temp/imagem.jpg | e3b0c44298fc1c149afbf4c8996fb924 | Único |
| /downloads/imagem.jpg | e3b0c44298fc1c149afbf4c8996fb924 | Duplicado |
Com este script, você automatiza a detecção de arquivos duplicados por conteúdo em segundos, eliminando a necessidade de comparação manual e garantindo precisão total através do uso de hashes criptográficos.