Como usar corretamente o comando de linha de comando `install` no Mac OS X?

Como usar corretamente o comando de linha de comando `install` no Mac OS X?

Eu tenho um makefile que instala muitos arquivos no meu diretório de compilação de destino. Alguns deles são executáveis, outros não.

Testei o installcomando com sinalizadores -D -m 644para arquivos não executáveis ​​anteriormente no Linux, mas agora ele quebrou. Descobri que o -Dsinalizador não está disponível no OSX/BSD e o removi. O problema é que preciso ter certeza de que os diretórios dos componentes nos caminhos dos arquivos que estou instalando sejam criados conforme necessário. Achei que a -dbandeira iria ajudar e tentei coisas como:

install .DS_Store ./tmp/build/some_dir/

...mas reclama que some_dir"esse arquivo ou diretório não existe", ou seja, não existe (o que é verdade). Tentei então o mesmo que acima, mas com o -dsinalizador, e recebi outro erro:

install: .DS_Store existe, mas não é um diretório

Eu só quero uma maneira mais ou menos estável e genérica de copiar arquivos para o destino. Talvez eu deva recorrer a cp? No entanto, conheço as pequenas, mas importantes diferenças entre os dois.

Responder1

install -dinterpreta todos os seus argumentos como diretórios que (podem) precisar ser criados. Portanto, acho que você precisa fazer isso com dois comandos:

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

informação relacionada