J'essaie d'écrire une règle de makefile pour copier un répertoire, en conservant sa structure, et puisque toutes les autres règles de nos makefiles utilisent install
, je voulais être cohérent.
Dans la page de manuel, il est écrit:
SYNOPSIS
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, cela ressemble à ce dont j'ai besoin ... mais les drapeaux n'ont pas de sens. Comment spécifiez-vous le répertoire de destination pour l'installation?
J'ai essayé de faire un test de base en créant une structure de répertoires arbitraire sur mon disque dur local:
~>tree test
test
├── a
│ └── b
│ └── c
│ └── e.txt
└── d
4 directories, 1 file
Et puis courir install -d
et regarder ce qui a été créé:
~>install -d test test2
~>tree test2
test2
0 directories, 0 files
Rien ne s'est passé!
Est-ce que quelqu'un peut-il me montrer la bonne direction? Googler "gnu install -d flag" ne m'apporte pas grand chose.
cp -r
cp -r
?install -d
est juste utilisé pour créer des répertoires. Vous lui avez dit de créer deux répertoires,test
ettest2
.test
existait déjà, il ne lui restait plus qu'à fairetest2
. Je ne pense pas qu'ilinstall
supporte la copie d'arborescences de répertoires entières; il est normalement utilisé sur les fichiers. Vous devez probablement utilisercp
la source
install -d
c'est la même chose,mkdir
sauf que vous pouvez spécifier le mode, le propriétaire, le contexte SELinux et le groupe à la fois.Habituellement, ce que vous voulez, c'est installer les fichiers dans le bon dossier, sans vous répéter. Vous pouvez utiliser la recherche et l'installation pour aider à garder vos scripts d'installation plus SEC
la source