¿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
, usarfind
en su lugar!Como la gente te dijo aquí, puedes usar DIFF en varias variaciones de uso. ¡O simplemente usa
dirdiff
en 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; done
fuente
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