Copia l'albero delle directory senza directory vuote?


17

Ho il seguente albero

# upper letters = directory
# lower letters = files
A
|-- B
|-- C
    |-- D
    |-- e <= file
|-- F
    |-- G

Devo copiare questo albero in un'altra destinazione, ignorando ricorsivamente tutte le directory vuote. Quindi la destinazione finisce per apparire come:

C
|-- e

Come faresti con unix, rsync, ecc?

Risposte:


29

Certo, qualche minuto dopo scopro un metodo semplice. rsyncha --prune-empty-dirsun'opzione.


1

Esistono varie soluzioni a questo problema (tratte da questa pagina Web ):

Questa opzione utilizza il comando mkdir con il comando find. Questo metodo richiede inoltre di trovarsi nella cartella di origine durante l'esecuzione del comando.

bash$ cd /path/to/source && find . -type d -exec mkdir -p /path/to/dest/{} ;

Utilizzando find e cpio

bash$ find /path/to/source -type d | cpio -pd /path/to/dest/

Usando Rsync

bash$ rsync -a --include '*/' --exclude '*' /path/to/source /path/to/dest

O

bash$ rysnc -a -f"+ */" -f"- *" /path/to/source /path/to/dest

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.