¿Cómo encontrar rápidamente los archivos/directorios más grandes que difieren entre dos directorios que deberían ser idénticos en Linux?

¿Cómo encontrar rápidamente los archivos/directorios más grandes que difieren entre dos directorios que deberían ser idénticos en Linux?

Soyintentando sincronizar dos discos duros. Pensé que la mayoría de las personas que no quieren perder ningún dato y no usan RAID usarían este método para tener una GUI que funcione bien. Ese no parece ser el caso y en Linux solo encontré la GUI de Grsync que puede hacer eso, pero como no puede copiar archivos de propiedad raíz, aún así tuve que ejecutar este comando rsync en la consola:

sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1 /media/veracrypt2
Básicamente significacopie todo tal como está en la unidad original y elimine los archivos en la unidad de destino que se hayan eliminado en la unidad de origen. Tengo la intención de clonar la unidad para que su contenido sea 100% exactamente idéntico y es posible que aún falten algunos parámetros en el comando. Ambas unidades ext4 están completamente cifradas con VeraCrypt y son exactamente del mismo modelo (también el mismo tamaño de almacenamiento). Estoy usando Debian12/KDE.

Mi problema es quesiempre cancela antes de terminar de copiar porque la unidad de destino está llena, rsync muestra este error:

rsync: [receiver] write failed on "/media/veracrypt2/file": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(380) [receiver=3.2.7]
rsync: [sender] write error: Broken pipe (32)

Pero no debería estar lleno porque lsblk -fmuestra que la unidad de origen está por debajo del 95% de FSUSE% con muchos GB libres.

Ya intenté eliminar archivos grandes en el disco de destino y volver a ejecutarlos con --exclude-from='./exclude-file.txt' --delete-excludedagregados para excluir algunos archivos grandes y var/spool/que var/cache/se encuentran en algún lugar de un directorio de una copia de seguridad de la partición del sistema realizada con BackInTime. También cambié el espacio en disco reservado raíz del 5% al ​​1% con sudo tune2fs -m 1 /dev/mapper/veracrypt2lo que anteriormente causaba que se mostrara.0B disponible incluso después de eliminar archivos grandes. Todavía no pasa.

¿Cómo puedo saber rápidamente qué directorios difieren en tamaño?¿Para poder intentar encontrar la causa de este problema?

En el problema de espacio en disco no liberado, un usuario sugirió ejecutar comandos como sudo du -sk /media/veracrypt2/*/* > ./before_deleting_files.txtpara comparar el espacio en disco, pero solo se muestra 4para algunos archivos y directorios y cada comando tarda mucho en cargarse.

Estoy buscando una forma que no tome mucho tiempo para escanear, que no tenga otros problemas que uno deba resolver primero, e idealmente sea 1) algo gráfico dinámico como Graphical Disk Map (gdmap) donde se pueda ver (en En este caso también se compara) el tamaño para navegar visual y dinámicamente o 2) algo que crea un informe que simplemente enumera qué directorios difieren.

Respuesta1

Puede redirigir la salida de tree -d --du disk1y tree -d --du disk2a un archivo cada uno y luego diferenciarlos...

Para evitar las discrepancias de rsync:

En mi comentario anterior quedé tan completamente obsesionado con la complejidad general del sistema que describiste que ni siquiera miré de cerca tu rsyncinvocación.

eso tiene que ser

sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1/ /media/veracrypt2

No

sudo rsync -r -t -p -o -g --delete -l -s /media/veracrypt1 /media/veracrypt2

Tenga en cuenta la barra diagonal final en /media/veracrypt1/.

información relacionada