sincronizzare ricorsivamente con una certa profondità di sottocartelle


17

Voglio rsyncuna cartella ricorsivamente ma voglio che le sottocartelle siano incluse solo a una certa profondità.

Ad esempio vorrei una profondità di 1,2,3 o 4 sottocartelle come questa:

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

Risposte:


26

Facilitare l' --exclude=opzione.

Per sincronizzare a una profondità di 2 (file all'interno di cartelle e sottocartelle):

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

Ti darà questo:

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

Per sincronizzare con una profondità di 3 (file all'interno di cartelle, sottocartelle e sottocartelle):

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

ti darà:

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
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.