Solution 1 :
Le commutateur dont vous avez besoin est --parents
, par exemple :
[email protected]:~$ cp --parents test/1/.moo test2/
[email protected]:~$ ls -la test2/
total 42
drwxr-xr-x 3 jim jim 72 2010-09-14 09:32 .
drwxr-xr-x 356 jim jim 43136 2010-09-14 09:32 ..
drwxr-xr-x 3 jim jim 72 2010-09-14 09:32 test
[email protected]:~$ ls -la test2/test/1/.moo
-rw-r--r-- 1 jim jim 0 2010-09-14 09:32 test2/test/1/.moo
Solution 2 :
Vous pouvez également utiliser rsync -R
, qui fonctionne sur OSX où cp --parents
n'est pas disponible.
https://stackoverflow.com/a/13855290/598940
Solution 3 :
Utilisez tar
avec quelque chose comme :
mkdir b; tar cpf - myProject/ | tar xpf - -C b/
(Non testé. Faites d'abord un essai à blanc ou essayez dans un scénario de simulation.)
Solution 4 :
Utilisez d'abord mkdir -p
pour créer le dossier de destination avec la création récursive du chemin parent. Copiez ensuite le contenu dans le dossier de destination :
mkdir -p b/myProject/.project
cp -r a/myProject/.project/file b/myProject/.project
Solution 5 :
cp -P a/myProject/.project b
Voir man cp
pour plus d'informations.