次の例を考えてみましょう。
/source
/source/folder1
/source/folder2
/source/folder3
/destination
/destination/folder2
/destination/folder3
/destination/folder3/mytestfolder1
/destination/folder4
/destination/folder4/mytestfolder1
/destination/folder4/mytestfolder2
ソースをターゲットに同期したいが、「/destination/folder4/mytestfolder1」を無視する必要があります。
除外パラメータを試してみました。
rsync -av --delete --progress --exclude "mytestfolder1" /source/ /destination/
ただし、これは「mytestfolder1」という名前のすべてのフォルダを無視します。
フルパスを提供すると、rsyncはパスがターゲットではなくソースにあると思うため、何も無視されません。
rsync -av --delete --progress --exclude "/destination/folder4/mytestfolder1" /source/ /destination/
rsync -av --delete --progress --exclude "destination/folder4/mytestfolder1" /source/ /destination/
オンラインで検索しましたが、役に立つコンテンツが見つかりませんでした。
助けてくれてありがとう。 :)
答え1
フィルタ(インクルード/除外)に絶対パスを使用すると、解析は同期ルートから始まります。ソースのディレクトリを除外せず、ターゲットのディレクトリも除外せず、同期したいツリーのディレクトリを除外することです。
したがって:
rsync -av --delete --progress --除外"/フォルダ4/mytestフォルダ1/出典/ /目的地/