rsync рекурсивно с определенной глубиной вложенных папок

17

Я хочу rsyncсоздать рекурсивную папку, но хочу, чтобы подпапки были включены только до определенной глубины.

Например, я хотел бы глубину 1,2,3 или 4 подпапки, как это:

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
источник

Ответы:

26

Облегчить --exclude=вариант.

Для синхронизации на глубину 2 (файлы в папке и подпапках):

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

Это даст вам это:

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

Для синхронизации на глубину 3 (файлы в папке, подпапках и подпапках):

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

даст тебе:

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
источник