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.