Soluzione 1:
L'interruttore di cui hai bisogno è --parents , ad esempio:
example@unixlinux.online:~$ cp --parents test/1/.moo test2/
example@unixlinux.online:~$ 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
example@unixlinux.online:~$ ls -la test2/test/1/.moo
-rw-r--r-- 1 jim jim 0 2010-09-14 09:32 test2/test/1/.moo
Soluzione 2:
Puoi anche usare rsync -R , che funziona su OSX dove cp --parents non è disponibile.
https://stackoverflow.com/a/13855290/598940
Soluzione 3:
Usa tar con qualcosa come:
mkdir b; tar cpf - myProject/ | tar xpf - -C b/
(Non testato. Fai prima una prova a vuoto o prova in uno scenario di simulazione.)
Soluzione 4:
Per prima cosa usa mkdir -p per creare la cartella di destinazione con la creazione ricorsiva del percorso principale. Quindi copia il contenuto nella cartella di destinazione:
mkdir -p b/myProject/.project
cp -r a/myProject/.project/file b/myProject/.project
Soluzione 5:
cp -P a/myProject/.project b
Vedi man cp per ulteriori informazioni.