特定の深さのサブフォルダーで再帰的に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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.