Tengo un directorio que contiene varios archivos, algunos de los cuales tienen espacios en sus nombres:¿Puede GNU hacer manejar nombres de archivos con espacios?
Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp
Yo uso de comandos de GNU $(wildcard)
en este directorio, y luego iterar sobre el resultado utilizando $(foreach)
, la impresión de todo. Aquí está el código:
FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))
Esto es lo que se esperaría ver impreso:
Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp
aquí es lo que haría realidad sale:
Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp
Este último es, obviamente, de ninguna utilidad para yo. El documentation para $(wildcard)
establece que devuelve una "lista de nombres separados por espacios", pero no reconoce los enormes problemas que esto plantea. Tampoco lo hace el documentation para $(foreach)
.
¿Es posible evitar esto? ¿Si es así, cómo? Cambiar el nombre de cada archivo y directorio para eliminar los espacios no es una opción.
Pude obtener '$?' Y '$ @'. Si está interesado, vea mi respuesta a continuación. y Louis, está equivocado, funciona. No dude en probarlo usted mismo –