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

Ответы:


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.