Команда "установить" Linux для установки подстановки
Есть ли способ использовать " install" для установки нескольких файлов одновременно с использованием шаблона подстановки (и все еще есть "установить" создать ведущую иерархию каталогов"?
Я пробовал несколько разных способов:
-
install -D -t /dest/path /source/path/*.py
-
install -D -t /dest/path/ /source/path/*.py
-
install -D /source/path/*.py /dest/path
-
install -D /source/path/*.py /dest/path/
Пожалуйста, помогите... для каждого испытания это занимает много времени (я использую pbuilder
для тестирования моего пакета каждый раз).
Ответы
Ответ 1
Может быть, использовать простой внешний цикл для вызова установки? Итак, как насчет
for f in /source/path/*.py; do \
install -D -t /dest/path $$f; \
done
Тем не менее, вы всегда можете извлечь логику из своего файла Makefile, debian/rules file... и протестировать его автономно без необходимости запускать pbuilder
.
В противном случае, конечно, реквизиты для использования pbuilder
для внутренних проектов!
Ответ 2
Для создания иерархии каталогов используйте следующую команду:
install -d /dest/path
а затем используйте:
install -D /source/path/*.py /dest/path
чтобы "установить" все файлы.
Ответ 3
Я ничего не знаю о pbuilder, но для моего случая (PKGBUILD для Arch Linux) я использую BASH for-loop с find:
for file in $(find source -type f -name *.py); do
install -m 644 -D ${file} dest/${file#source/}
done
Команда find может быть подходящей для того, чтобы быть более или менее конкретным в отношении того, что копируется. В приведенном выше примере все обычные файлы, заканчивающиеся на .py в любом месте ниже источника /, будут выбраны.
Ответ 4
man install показывает, что DEST должен существовать, если копировать несколько файлов.
... В первых трех формах скопируйте SOURCE в DEST или несколько SOURCE (s) в существующий DIRECTORY при настройке режимов разрешений и владельца/группы. В 4-й форме создайте все компоненты данного СПРАВОЧНИКА (-ий).
...
Ответ 5
Хорошо, может быть, я возрождаю старый пост, но я думаю, что это стоит для будущих исследований. Из примера, приведенного nharward (я также использую arch linux и PKGBUILD), я изменил так, что мне не пришлось беспокоиться о mode/permissions (-m) файла, независимо от структуры каталогов.
for file in $(find ${srcdir} -type f); do
install -m $(stat -c%a ${file}) -D ${file} ${pkgdir}/${file#${srcdir}}
done