rsync secara rekursif dengan kedalaman subfolder tertentu

17

Saya ingin rsyncfolder secara rekursif tetapi ingin subfolder hanya dimasukkan ke kedalaman tertentu.

Misalnya saya ingin kedalaman 1,2,3 atau 4 subfolder seperti ini:

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
sumber

Jawaban:

26

Fasilitasi --exclude=opsi.

Untuk menyinkronkan ke kedalaman 2 (file dalam folder dan subfolder):

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

Ini akan memberi Anda ini:

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

Untuk menyinkronkan ke kedalaman 3 (file dalam folder, subfolder dan subfolder):

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

akan memberimu:

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
sumber