1

У меня есть make-файл, который устанавливает много файлов в мой целевой каталог сборки. Некоторые из них исполняемые, некоторые нет.

Я тестировал команду install с флагами -D -m 644 для неисполняемых файлов ранее в Linux, но теперь она сломалась. Я обнаружил, что флаг -D недоступен в OSX/BSD, и удалил его. Дело в том, что мне нужно убедиться, что каталоги компонентов в путях файлов, которые я устанавливаю, создаются по мере необходимости. Я думал, что флаг -d поможет, но делает что-то вроде:

install .DS_Store ./tmp/build/some_dir/

Но он жалуется, что some_dir - это "нет такого файла или каталога", то есть он не существует (что верно). Затем я попробовал то же самое, что и выше, но с флагом -d , и получил еще одну ошибку:

установить:DS_Store существует, но не является каталогом

Я просто хочу более или менее стабильный и общий способ копирования файлов по назначению. Может мне прибегнуть к cp? Я знаю незначительные, но важные различия между ними.

1 ответ1

2

install -d интерпретирует все свои аргументы как каталоги, которые (возможно) должны быть созданы. Таким образом, я думаю, что вам нужно сделать это двумя командами:

install -d ./tmp/build/some_dir/
install .DS_Store ./tmp/build/some_dir/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .