rsync recursivamente con una cierta profundidad de subcarpetas

17

Quiero rsyncuna carpeta de forma recursiva, pero quiero que las subcarpetas se incluyan solo a una cierta profundidad.

Por ejemplo, me gustaría una profundidad de 1,2,3 o 4 subcarpetas como esta:

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
fuente

Respuestas:

26

Facilitar la --exclude=opción.

Para sincronizar a una profundidad de 2 (archivos dentro de carpetas y subcarpetas):

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

Te dará esto:

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

Para sincronizar a una profundidad de 3 (archivos dentro de carpetas, subcarpetas y subcarpetas):

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

Te regalaré:

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
fuente