Как правильно использовать команду командной строки `install` в Mac OS X?

Как правильно использовать команду командной строки `install` в Mac OS X?

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

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

install .DS_Store ./tmp/build/some_dir/

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

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

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

решение1

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

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

Связанный контент