На самом деле проблема не в расширении шаблона. Этот бит будет работать, как ожидалось. Ошибка на самом деле из-за результирующей команды cp
. Вы в конечном итоге, например:
cp abc/a.txt abc/b.txt other/path/abc/*.txt
Однако для нескольких исходных файлов cp
ожидайте, что местом назначения будет каталог, которого нет other/place/abc/*
(может быть, если вы его создали, но вряд ли это то, что вы хотели).
Это сказал. Например, вы можете создать целевой каталог, вызвав mkdir -p other/path/`dirname $$file`
(экранированный $
для make) и с помощью cp
используйте `dirname $$file`
также для пункта назначения.
Есть несколько предостережений. Например, если нужно встретить абсолютные пути или символы глобинга, которые также используются в каталогах, ведущих к самим файлам (dir?/*.txt
, some/*/file
). Возможно, было бы безопаснее использовать, например, tar
или cpio
:
tar cf - -C /source/path src/*.txt | tar xf - -C /target/path/