特定の深さのサブフォルダを使用して再帰的にrsync

特定の深さのサブフォルダを使用して再帰的にrsync

フォルダに再帰的にアクセスしたいのですが、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

ベストアンサー1

--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

おすすめ記事