J'essaie d'écrire une règle de Makefile pour copier un répertoire, en maintenant sa structure et, étant donné que toutes les autres règles de nos maquillages utilisent install
, je voulais être cohérent.
Dans le Manpage, il dit:
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 à installer?
J'ai essayé de faire un test de base en effectuant une structure de répertoire arbitraire sur mon disque dur local:
~>tree test
test
├── a
│ └── b
│ └── c
│ └── e.txt
└── d
4 directories, 1 file
Puis en cours d'exécution 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? Googling "gnu install -d drapeau" ne m'apporte pas beaucoup.
Il ressemble à la install -D
la commande est en fait ce que je veux.
Manpage:
-D Créer tous les éléments de premier plan de DESTS sauf le dernier, puis la source de copie sur DEST
Fonctionne génial, sauf que vous devez spécifier chaque fichier individuellement.
install -d
est juste utilisé pour créer des répertoires. Vous l'avez dit de créer deux répertoires, test
et test2
. test
existait déjà, donc tout ce qu'il fallait faire était de faire test2
. Je ne pense pas que install
prend en charge la copie des arbres de répertoire entier; Il est normalement utilisé dans les fichiers. Vous devez probablement utiliser cp