¿Hay alguna herramienta de Linux / Unix que encuentre todos los archivos en un directorio que no esté presente en otro? Básicamente estoy buscando diff que funciona en la salida de ls.
Los guiones cortos y dulces también son apreciados.
                    
                        linux
                                command-line-interface
                                filesystems
                                
                    
                    
                        Willi Ballenthin
fuente
                
                
            fuente

diff dir1 dir2 | grep "Only"Golpetazo:
Compare solo los nombres de archivo, no el contenido de los archivos.
fuente
ls, usarfinden su lugar!Como la gente te dijo aquí, puedes usar DIFF en varias variaciones de uso. ¡O simplemente usa
dirdiffen su lugar, lo que está destinado a lo que está intentando! :-)Pero si quieres mantener algunos directorios sincronizados, entonces realmente deberías echarle un vistazo
rsync.Saludos
fuente
Si desea hacer esto también a través de todos los subdirectorios, una buena forma de hacerlo es:
Prefiero usar breve, pero puedes dejarlo fuera si quieres.
fuente
for i in $(ls -1 directory1); do if (test -f directory2/$i) then echo $i; fi; donefuente
Esto funciona..
fuente
no probado:
fuente
Dennis Williamson tuvo una buena respuesta , pero necesitaba hacerlo recursivamente. GNU findutils 4.7.0 no ordena su salida, así que esto es lo que usé
Para hacer esto solo de una manera, y producir una lista de archivos, usé esto:
Para que esto funcione correctamente, ni $ dir1 ni $ dir2 deben incluir la barra diagonal final.
fuente