Copier l'arborescence des répertoires sans répertoires vides?

17

J'ai l'arbre suivant

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

J'ai besoin de copier cet arbre vers une autre destination, en ignorant récursivement tous les répertoires vides. La destination finit donc par ressembler à:

C
|-- e

Comment feriez-vous cela avec unix, rsync, etc.?

Dane O'Connor
la source

Réponses:

29

Bien sûr, quelques minutes plus tard, je découvre une méthode simple. rsynca une --prune-empty-dirsoption.

Dane O'Connor
la source
1

Il existe différentes solutions à ce problème (tirées de cette page Web ):

Cette option utilise la commande mkdir avec la commande find. Cette méthode nécessite également que vous soyez à l'intérieur du dossier source lors de l'exécution de la commande.

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

Utilisation de find et cpio

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

Utilisation de Rsync

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

OU

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

VL-80
la source