¿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 -path
opció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.