Para comparar y enumerar los diferentes contenidos de dos directorios sin la salida adicional que obtiene a través de comandos como diff , puede usar el comando comm en su lugar. Para comenzar, inicie Terminal y escriba el siguiente comando, ajustando las rutas del directorio según corresponda:
comm -3 <(ls -1 folder1) <(ls -1 folder2)
La salida enumerada serán los archivos que son diferentes en cada carpeta, con archivos exclusivos de la carpeta 1 alineados a la izquierda y archivos exclusivos de la carpeta 2 alineados a la derecha.
Por ejemplo, para comparar el contenido de una carpeta llamada “Imágenes” y una carpeta llamada “Imágenes antiguas”, ambas almacenadas en el directorio de descargas del usuario, la sintaxis sería la siguiente:
comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
La salida puede tener el siguiente aspecto:
$ comm -3 <(ls -1 ~/Downloads/Pictures) <(ls -1 ~/Downloads/OldPictures)
Folder-1-File.PNG
Folder-2-File copy.PNG
photo 1 copy.PNG
photo 3.PNG
Tenga en cuenta la sangría, que le muestra qué archivos son únicos para cada carpeta. En el ejemplo anterior, el archivo “foto 1 copia.PNG” y “foto 3.png” están alineados a la derecha, por lo tanto, son exclusivos del directorio OldPictures, y la copia Folder-1-File.PNG y Folder-2-File. Los PNG son exclusivos de la carpeta Imágenes originales.
Esto funciona muy bien en Mac OS X, pero es un comando genérico de Unix, por lo que debería encontrarlo utilizable en Linux y otras variantes también. Si tiene algún problema de compatibilidad o encuentra que este comando es innecesariamente complejo, intente usar diff para realizar la misma función .
¡Gran truco encontrado por @climagic en Twitter, @unchin_deto también está ahí!