Может ли GNU обрабатывать имена файлов с пробелами?

У меня есть каталог, содержащий несколько файлов, некоторые из которых содержат пробелы в именах:

Test workspace/
Another directory/
file1.ext
file2.ext
demo 2012-03-23.odp

Я использую команду GNU $ (подстановочный знак)в этом каталоге, а затем перебрать результат, используя $(foreach), распечатав все. Вот код:

FOO := $(wildcard *)
$(info FOO = $(FOO))
$(foreach PLACE,$(FOO),$(info PLACE = $(PLACE)))

Вот что я ожидал увидеть в распечатанном виде:

Test workspace
Another directory
file1.ext
file2.ext
demo 2012-03-23.odp

Вот что я получил на самом деле:

Test
workspace
Another
directory
file1.ext
file2.ext
demo
2012-03-23.odp

Последнее мне явно не нужно. В документациидля $(wildcard)прямо указано, что она возвращает "список имен, разделенных пробелами", но совершенно не признает огромных проблем, которые это вызывает. Как и документация для $(foreach).

Можно ли это обойти? Если да, то как? Переименовывать каждый файл и каталог, чтобы удалить пробелы, не вариант.

69
задан qntm 23 March 2012 в 14:08
поделиться