¿Cómo verifico que todos los archivos de la carpeta A existan en la carpeta B?

¿Cómo verifico que todos los archivos de la carpeta A existan en la carpeta B?

Estoy reorganizando algunos archivos en mi disco duro y tengo una copia antigua de una carpeta, lo que quiero hacer es asegurarme de que cada archivo de la carpeta A (la copia anterior) exista en la carpeta B. Cada carpeta contiene al menos 200 archivos. la mayoría de los cuales probablemente sean duplicados.

Advertencia: no puedo simplemente verificar los nombres de los archivos, también debo asegurarme de que tengan el mismo contenido (à la fdupes).

Revisé la página de manual para ver fdupessi había alguna forma de realizar la operación inversa (es decir, averiguar qué archivosnotengo copias) pero vino con las manos vacías, incluso si la funcionalidad existiera, todavía tengo archivos que existen solo en la carpeta B.

Estas dos preguntas eran similares, pero eran solo Windows, por lo que no fueron de mucha ayuda:

Gracias de antemano.

Respuesta1

Si ya tiene una lista de archivos duplicados, simplemente compárela con la lista de todos los archivos para encontrar los únicos:

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f)
  • -wsolo procesa palabras completas (no subcadenas, por lo que el archivo abcdno coincide con abc)
  • -Fconsidera que los patrones son expresiones literales, no regulares
  • -futiliza el archivo especificado ( -en este caso, es decir, la entrada estándar) como una lista de expresiones con las que comparar.
  • -vcomo probablemente sepas, muestra las líneas que no coinciden.

Esto debería generar una lista que contenga los archivos que solo se encuentran en una de las carpetas, debería ser fácil verificar que todos están en la carpeta B hojeando o buscando el nombre de la carpeta A (llamada a continuación dir1) de esta manera:

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f) | grep -F dir1

información relacionada