Rsync rekursiv mit einer bestimmten Tiefe von Unterordnern


17

Ich möchte rsynceinen Ordner rekursiv, aber Unterordner sollen nur bis zu einer bestimmten Tiefe enthalten sein.

Zum Beispiel möchte ich eine Tiefe von 1,2,3 oder 4 Unterordnern wie folgt:

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

Antworten:


26

Erleichtern Sie die --exclude=Option.

So synchronisieren Sie bis zu einer Tiefe von 2 (Dateien in Ordnern und Unterordnern):

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

Es wird dir folgendes geben:

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

So synchronisieren Sie bis zu einer Tiefe von 3 (Dateien in Ordnern, Unterordnern und Unterordnern):

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

werde dir geben:

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.