1 votos

¿Cómo escanear archivos / imágenes duplicados en una sola dirección?

Estoy buscando una solución para la búsqueda de archivos duplicados / imágenes en mi mac, pero sólo en una dirección: Carpetas a y B deben ser comparados, pero yo sólo estoy interesado en los archivos en Una carpeta con duplicados en la carpeta B. Si hay duplicados en la B, no importa.

En detalle:

En mi Mac tengo una gran colección de fotos e imágenes. Digamos que todos están situados en /User/JustMe/PhotoCollection/ o sus sub-carpetas.

Dentro de estas carpetas en el mismo conocido duplicados que donde creó intencionalmente. Por ejemplo tengo una carpeta Summer Vacationy una sub carpeta que contiene todas las fotos de las vacaciones que se deben utilizar para un libro de fotos. Por lo tanto no estoy interesado en la búsqueda de estos duplicados.

Al importar las fotos de mi cámara puede suceder que algunos de ellos se han importado antes. Por lo tanto me gustaría comparar la carpeta de importación a la existente carpeta de fotos y encontrar sólo los duplicados

  • dentro de la carpeta de importación (ambos archivos se encuentran en la carpeta de importación)
  • o una versión dentro de la carpeta de importación y uno dentro de la carpeta de fotos

No, no estoy interesado en los duplicados dentro de las fotografías existentes.

He probado algunos conocidos duplicado escáneres como Gemini, Cisdem, etc. Todos ellos permiten seleccionar varias carpetas para comparar, pero no parecen tener un oneway opción.

Esto puede ser resuelto con macOS características o hay alguna de las herramientas que ofrece esta opción?

EDITAR:

Como se pide aquí es un ejemplo:

/User/JustMe/PhotoCollection/
    SubfolderA/
       Image1.jpg
    SubfolderB/
       ImageA.jpg
       ImageB.jpg
       Selection/
           ImageA.jpg
    SubfolderC/
    ...

/User/JustMe/PhotoImport/
    NewImage1.jpg
    NewImage2.jpg
    NewImage2_Copy.jpg
    ImageA.jpg

Los posibles duplicados:

/User/JustMe/PhotoCollection/SubfolderB/ImageA.jpg    
/User/JustMe/PhotoCollection/SubfolderB/Selection/ImageA.jpg

/User/JustMe/PhotoImport/NewImage2.jpg
/User/JustMe/PhotoImport/NewImage2_Copy.jpg

/User/JustMe/PhotoImport/ImageA.jpg
/User/JustMe/PhotoCollection/SubfolderB/ImageA.jpg 

El primer duplicado dentro de la colección existente y es un conocido duplicados que no debe ser eliminado / escaneada para.

El segundo duplicado está dentro de la carpeta de importación y debe ser eliminado

El 3 de duplicar tiene una versión en la carpeta de importación y uno en la colección existente. La importación de versión debe ser eliminado.

Todos los duplicados de los escáneres tengo pruebas de que no sólo la prueba de que el nombre del archivo, sino también la fecha de captura, otros datos raw, etc. para asegurarse de que los archivos son iguales. Además se puede escanear en busca de similar fotos que no son 100% idénticos, pero casi de la misma.

1voto

Naveed Abbas Puntos 126

Parece que usted está en la fotografía y que no le han interesado por las mejores prácticas para la gestión de archivos. Usted tiene dos opciones ahora.

1) habría Que crear (bash O python script) que sería de suma de comprobación MD5 de los archivos y eliminar sólo se encuentra duplicada con fecha posterior. Tener en cuenta, uno descuidado paso puede eliminar los archivos que no desee eliminar.

2) (Sugerido) Hay varios gratuitos y de pago de las utilidades que debe ser utilizado para limpieza de los duplicados. Si se dispone de duplicados con fecha de comparación. Como ya se mencionó (Géminis). Lo probé hace unos meses y me pareció muy útil.

Hay varios demostrado prácticas para la gestión de la biblioteca de fotos. Este es un buen momento para adaptarse a uno.

Como usted lo solicitó, aquí es un script que encontrar duplicados en una carpeta.

#!/usr/bin/env python
# Syntax: duplicates.py DIRECTORY
import os, sys
top = sys.argv[1]
d = {}

for root, dirs, files in os.walk(top, topdown=False):
  for name in files:
    fn = os.path.join(root, name)
    basename, extension = os.path.splitext(name)

    basename = basename.lower() # ignore case

    if basename in d:
        print(d[basename])
        print(fn)
    else:
        d[basename] = fn

Guarde este archivo como duplicates.py y darle derechos y, a continuación, ejecútelo en la carpeta.

./duplicates.py Images

Se requiere que usted tenga una comprensión de la osx terminal.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X