rsync recursivamente com uma certa profundidade de subpastas

17

Quero rsyncuma pasta recursivamente, mas quero que as subpastas sejam incluídas apenas até uma certa profundidade.

Por exemplo, eu gostaria de uma profundidade de 1,2,3 ou 4 subpastas 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
fonte

Respostas:

26

Facilite a --exclude=opção.

Para sincronizar com uma profundidade de 2 (arquivos em pastas e subpastas):

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

Isso lhe dará o seguinte:

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

Para sincronizar com uma profundidade de 3 (arquivos na pasta, subpastas e subpastas):

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

Darei à você:

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
fonte