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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.