次の例を検討してください。
/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"は無視する必要があります。
Excludeパラメータを使用してみました
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/
ネットを検索しましたが、役立つ情報はありませんでした。
助けてくれてありがとう。 :)
フィルターで絶対パスを使用する場合(include/exclude)、同期のルートから開始して解釈されます。ソースのディレクトリを除外するのではなく、同期先のディレクトリを除外するのではなく、同期するツリーのディレクトリを除外します。
したがって:
rsync -av --delete --progress --exclude "/ folder4/mytestfolder1"/source//destination/