rsync récursivement avec une certaine profondeur de sous-dossiers

17

Je veux rsyncun dossier récursivement mais je veux que les sous-dossiers ne soient inclus qu'à une certaine profondeur.

Par exemple, je voudrais une profondeur de 1,2,3 ou 4 sous-dossiers comme ceci:

source/
├── subfolder 1
   ├── subsubfolder
      ├── subsubsubfolder
         └── wanted with depth 4.txt
      └── wanted with depth 3.txt
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt
nnn
la source

Réponses:

26

Facilitez l' --exclude=option.

Pour synchroniser à une profondeur de 2 (fichiers dans le dossier et les sous-dossiers):

rsync -r --exclude="/*/*/" source/ target/

Cela vous donnera ceci:

target/
├── subfolder 1
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt

Pour synchroniser à une profondeur de 3 (fichiers dans le dossier, sous-dossiers et sous-dossiers):

rsync -r --exclude="/*/*/*/" source/ target/

te donnera:

target/
├── subfolder 1
   ├── subsubfolder
      └── wanted with depth 3.txt
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt
nnn
la source