¿Comando Unix para encontrar los archivos en un directorio pero no en otro?

¿Comando Unix para encontrar los archivos en un directorio pero no en otro?

¿Cuál es el comando de Unix para buscar archivos que están directamente en un directorio y no en otro? Sólo me importan los nombres de los archivos.

Gracias.

Respuesta1

Supongo que desea realizar esta búsqueda desde un directorio de nivel superior. Si es así, puedes usar la -pathopción con find.

Por ejemplo, dada la estructura de directorios siguiente

+---dir1/test1.txt
  |
  |--dir2/test1.txt

para encontrar archivos que coincidan con 'prueba*' en el uso de dir1

find -path '*dir1*' -iname 'test*'

Respuesta2

Para comparar dos directorios, puede usar esto:

diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort)

Para hacer esto de una sola manera y generar una lista de archivos, intente esto:

diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"

Para que esto funcione correctamente, ni $dir1 ni $dir2 deben incluir la barra diagonal final.

información relacionada