
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 install
comando com sinalizadores -D -m 644
para arquivos não executáveis anteriormente no Linux, mas agora ele quebrou. Descobri que o -D
sinalizador 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 -d
bandeira 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 -d
sinalizador, 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 -d
interpreta 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/