Soluzione 1:
L'interruttore di cui hai bisogno è --parents
, ad esempio:
[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
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.