FreeBSD 12.x:特定のフォルダをマイターゲットフォルダに同期する

FreeBSD 12.x:特定のフォルダをマイターゲットフォルダに同期する

上記のように

たとえば、説明するのが最善だと思います。

/mnt/source/source-folder
  -> sfolder1
  -> sfolder2 
  -> sfolder3
  -> sfolder4

「sfolder」には、数十のフォルダとその中に何百ものファイルが含まれています。

「sfolder2とその内容」を/mnt/destination/destination-folderにコピーしたいと思います。

頑張った

rsync -nriv --stats --include "sfolder2" --exclude "*" /mnt/source/source-folder/ /mnt/destination/destination-folder/

rsync -nriv --stats --include "sfolder2*" --exclude "*" /mnt/source/source-folder/ /mnt/destination/destination-folder/

rsync -nriv --stats --include "*sfolder2*" --exclude "*" /mnt/source/source-folder/ /mnt/destination/destination-folder/

すべての場合において、統計レポートは「sfolder2」フォルダのみを送信し、「sfolder2」内の数十のフォルダと数百のファイルは無視されます。

私は何が間違っていましたか?

私の実際の目標は、ソースからターゲットに複数のフォルダ(上記のフォルダ設定、sfolder2、sfolder4など)をコピーすることです。現在テストするときは、フォルダを1つだけ使用してください。

ありがとうございます!

ベストアンサー1

「すべての場所」を除き、*転送ルートのsfolder2ファイルまたはディレクトリのみを転送するために含めました。sfolder2

代わりに、/*ソースディレクトリに関連するファイルのみを除外できます。つまり/sfolder3、たとえば除外されると/sfolder3親ディレクトリが除外されるため、内部のすべてのファイルも除外されます。

Useを使用すると、/sfolder2/そのディレクトリがソースディレクトリ(/最初に)に相対的であり、ディレクトリ(/最後にある)であることが明らかになります。また、-r-aアーカイブモード)を次に置き換えました-r

rsync -naiv --stats --include='/sfolder2/' --exclude='/*' \
 /mnt/source/source-folder/ /mnt/destination/destination-folder/

sfolder2以下を含みますsfolder4

rsync -naiv --stats --include='/sfolder2/' --include='/sfolder4/' --exclude='/*' \
 /mnt/source/source-folder/ /mnt/destination/destination-folder/

おすすめ記事