Estou tentando escrever uma regra de makefile para copiar um diretório, mantendo sua estrutura e, como todas as outras regras em nossos makefiles são usadas install
, eu queria ser consistente.
Na página de manual, diz:
SINOPSE
install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY... -d, --directory treat all arguments as directory names; create all components of the specified directories
OK, parece o que eu preciso ... mas as bandeiras não fazem sentido. Como você especifica o diretório de destino para instalar?
Tentei fazer um teste básico criando uma estrutura de diretório arbitrária no meu disco rígido local:
~>tree test
test
├── a
│ └── b
│ └── c
│ └── e.txt
└── d
4 directories, 1 file
E então executando install -d
e olhando o que foi criado:
~>install -d test test2
~>tree test2
test2
0 directories, 0 files
Nada aconteceu!
Alguém pode me apontar na direção certa? Pesquisar no Google "gnu install -d flag" não está me trazendo muito.
cp -r
cp -r
?install -d
é usado apenas para criar diretórios. Você disse para criar dois diretóriostest
etest2
.test
já existia, então tudo o que precisava fazer era fazertest2
. Eu não acho queinstall
suporta copiar árvores de diretório inteiras; normalmente é usado em arquivos. Você provavelmente precisa usarcp
fonte
install -d
é o mesmo que,mkdir
exceto que você pode especificar o modo, proprietário, contexto do SELinux e agrupar todos de uma vez.Normalmente, o que você deseja é instalar arquivos na pasta correta, sem se repetir. Você pode usar o find e o install para ajudar a manter os scripts de instalação mais secos
fonte