rsyncを使用して、リモートシステムのディレクトリにある特定のファイルセットをローカルディレクトリと同期させたいと思います。私は次のようなことをします:
rsync -i -a --delete -f 'merge ~/files_list' x.x.x.x:/source/dir/ /target/dir/
~/files_list
リモートディレクトリにはより多くのファイルがあり、特定のサブセットのみをコピーしたいので、ファイルには同期する特定のファイル名パターンのリスト(ワイルドカードを含む)が含まれています。--delete
リモートシステムに存在しなくなったファイルをローカルシステムから削除しようとしているため、このパラメータも重要です。
これは、1つを除いて期待どおりに機能します。所有者と権限がに変更されますが/target/dir
、/source/dir
これは私の場合は許可されていません。
この行動を取り除くには?引数なしでrsyncが単に「トップレベルのディレクトリ属性を変更しないでください」と言うことは信じられません。しばしば必要なようだからです。
*
私の場合、それ以降の明白な解決策は効果的に無効になり、ターゲットには存在しますがソースにはないファイルが削除されなかった/source/dir/
ため、機能しませんでした。--delete
この問題を解決する方法はありますか?
編集する-a
:使用しないでください、または明示的に指定しないように多くの回答を受けたためです--no-perms
。本当に知っていますそれはどういう-a
意味なのか、そこにいるじゃないか故意に。私本当に欲しい持つすべてが同期しています。(権限および所有権を含む)ディレクトリ内容。私はほしいだけです。ディレクトリ自体をスキップします。。
rsync
「しないでください」と書かれたスイッチがあったらと思います。最高目次。」 まさにその内容でなければなりません。
答え1
--no-perms --no-owner --no-group を追加