
Tengo fotos, en la carpeta A, también existen, en las carpetas B y C. Tienen el mismo nombre de archivo. ¿Cómo buscarlos y eliminarlos de la carpeta A? Un script en Perl o algo así sería ideal ya que no me gusta descargar software para esta tarea.
Respuesta1
Pruebe este comando:
find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;
¿Cómo utilizar?
Paso 1:Cree un directorio temporal para mover archivos duplicados a ese:
ToDelete=/tmp/ToDelete; mkdir -p "$ToDelete"
Paso 2:Establezca destdir
en su directorio Carpeta A desde donde queremos eliminar fotos duplicadas.
destdir=/path/to/FolderA
Paso 3cd a su primer directorio fuente (CarpetaB) y ejecute el comando
cd /path/to/FolderB
find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;
Etapa 4:Ahora vaya al siguiente directorio fuente (CarpetaC) y ejecute nuevamente el comando
cd /path/to/FolderC
find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec echo mv -v "$destdir/{}" "$ToDelete"/ \;
De acuerdo. Ahora, si prueba el comando y ve el resultado, elimine el echo
comando para mover las fotos duplicadas al /tmp/ToDelete
directorio.
Vea la prueba a continuación:
$ ls ~/FolderA
1.jpg 2.jpg 6.jpg 7.jpg 8.jpg
$ ls ~/FolderB
3.jpg 4.jpg 5.jpg 7.jpg 8.jpg 9.jpg
$ ls ~/FolderC
6.jpg 7.jpg 8.jpg 9.jpg
$ ToDelete=/tmp/ToDelete; mkdir -p "$ToDelete"
$ ls /tmp/ToDelete/
$ destdir=~/FolderA
$ cd ~/FolderB
/FolderB$ find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec mv -v "$destdir/{}" "$ToDelete"/ \;
‘/home/Fischer/FolderA/./8.jpg’ -> ‘/tmp/ToDelete/8.jpg’
removed ‘/home/Fischer/FolderA/./8.jpg’
‘/home/Fischer/FolderA/./7.jpg’ -> ‘/tmp/ToDelete/7.jpg’
removed ‘/home/Fischer/FolderA/./7.jpg’
/FolderB$ cd ~/FolderC
/FolderC$ find . -type f -exec cmp -s '{}' "$destdir/{}" \; -exec mv -v "$destdir/{}" "$ToDelete"/ \;
‘/home/Fischer/FolderA/./6.jpg’ -> ‘/tmp/ToDelete/6.jpg’
removed ‘/home/Fischer/FolderA/./6.jpg’
/FolderC$ ls /tmp/ToDelete/
6.jpg 7.jpg 8.jpg
/FolderC$ ls -l ~/FolderA
1.jpg 2.jpg
/FolderC$ C00L ;)
¿Y cómo funciona?
Cuando cambias a tu CarpetaB o CarpetaC y ejecutasencontrar comando, entonces busca cualquier archivo en él ( .
consulte el directorio actual) y luego concomando cmp(usado para comparar dos archivos byte por byte) compara cada archivo ( {}
) en la Carpeta B/Carpeta C con los archivos en destdir
(Carpeta A ( $destdir/{}
)) si son iguales, entonces movemos ese archivo (de la Carpeta A al directorio temporal en /tmp/ToDelete
) con el siguientecomando mv -exec mv "$destdir/{}" "$ToDelete"/ \;
.
Respuesta2
El programaencontrar imágenes duplicadasdebe hacer lo que solicita:
Encuentra imágenes visualmente similares o duplicadas
El programa es un programa Perl simple y se puede iniciar desde la línea de comandos, pero también está disponible como paquete de software.
Respuesta3
podrías usar el programa fslint
busca duplicados (entre otras cosas)
fslint se puede descargar en el centro de software. fslint tiene una interfaz de usuario cuando abres el programa, la primera pestaña trata sobre encontrar duplicados. puede especificar la carpeta/carpetas.
más información :manual de usuario fslint
Respuesta4
Hay muchosbuscador de fotos duplicadasutilidades disponibles en línea. Algunos son mejores que otros, algunos son más rápidos, algunos son fáciles de usar, muchos son gratuitos y algunos tienen que pagar para desbloquear la funcionalidad completa.
Realiza una búsqueda en Google con las mejores frases de buscador de fotos duplicadas para descubrir qué hay disponible y encontrar la que se adapte a tus necesidades.