rsyncを使用してスキーマとそのコンテンツを含むフォルダのみをインポートする

rsyncを使用してスキーマとそのコンテンツを含むフォルダのみをインポートする

私はインターネットをシャットダウンし、正規表現サイトと他のすべてを見ましたが、私が望むものを得るためにrsyncコマンドを書くことはできません。

FreeBSDバージョンをミラーリングする必要がありますが、RCバージョンとBETAバージョンはミラーリングしないでください。したがって、名前にRELEASEを含むフォルダーは、そのフォルダー内のすべてのファイルとサブフォルダーと一緒にrsyncします。

この時点で、私は成功せずに次のコマンドを実行しました。

rsync -vaz --delete --dry-run ftp2.br.freebsd.org::FreeBSD/releases/amd64 /usr/repos --include=".{0,}(RELEASE)" --filter="-! */"

次のフォルダ構造を想像してみましょう。

amd64/8.3-RELEASE/
amd64/8.4-RC2/
amd64/amd64/10.0-RC5/
amd64/amd64/10.0-RELEASE/
amd64/amd64/9.1-RELEASE/
amd64/amd64/9.2-BETA1/
amd64/amd64/9.2-BETA2/
amd64/amd64/9.2-RC1/

この場合、rsyncは次のもののみをインポートする必要があります。

amd64/8.3-RELEASE/
amd64/amd64/10.0-RELEASE/
amd64/amd64/9.1-RELEASE/

ベストアンサー1

この試み:

$ rsync -vaz --delete --dry-run ftp2.br.freebsd.org::FreeBSD/releases/amd64 /usr/repos \
    --include="*RELEASE/***" --include="*/" --exclude="*" --prune-empty-dirs

私の考えでは、それはあなたが追いかけていることだと思います。

おすすめ記事