Diferencia entre files en el directory

Tengo dos directorys con los mismos files pero con algunas diferencias en sus contenidos. Quiero enumerar aquellos files que difieren. Por ejemplo

Hay dos carpetas, Carpeta1 y Carpeta2, con los files file1, file2, file3, etc. El file2 de Folder1 no es similar al file2 de Folder2.

Entonces mi command debe listr file2.

Cómo puedo hacer eso ?

Puedes comparar directorys con diff :

 $ diff -qr dirA dirB Only in dirB: file.txt Files dirA/README and dirB/README differ 

Estoy seguro de que hay herramientas especializadas para ese propósito ( fdupes viene a la cabeza fdupes ) este simple script debería hacer el trabajo:

 #!/usr/bin/env sh if [ "a$1" = a -o "a$2" = a ] then echo Directory name missing. echo Exiting exit 1 fi for i in "$1"/* do filename=$(basename "$i") diff "${1}/${filename}" "${2}/${filename}" > /dev/null 2>&1 if [ "$?" -eq 1 ] then echo "$filename" is different fi done exit 0 

Tienes que tener diff binary en tu $PATH (probablemente lo tengas). Uso:

 $ ./diff.sh Folder1 Folder2 7 is different file2 is different 

Solución 1: Puede echar un vistazo allí: https://askubuntu.com/questions/111495/how-to-diff-multiple-files-across-directories , especialmente la respuesta de Rinzwind que estipula que puede hacer directamente diff -qr Folder1 Folder2 .

Las otras soluciones solo son útiles si desea fusionar los resultados.

Solución 2: si puede ejecutar la aplicación GUI, la mejor solución sería usar meld o kdiff3 .

Solución 3: Otra solución sería usar un software de control de versiones. Por ejemplo, con git, puedes hacer:

 $ cd Folder1 $ git init $ git add . $ git commit -m "First commit" $ rm -rf * $ cp -r /PATH/TO/Folder2/* ./ 

Luego, puedes usar el git status git diff o git diff para ver las diferencias. Para esta solución, es posible que desee hacer una copy de security primero. Tenga en count que rm -rf * no elimina files de puntos.

Solución 4: Finalmente, podría echarle un vistazo a este complemento vim (no lo he probado aún): https://github.com/will133/vim-dirdiff . Estoy seguro de que ese complemento también existe para Emacs .