私は次のことを実行していますがrsync -av -e "ssh" --include="dir1/***" --include="file1.txt" --exclude="*" superuser@remote-server:/var/www/ /var/
、私が得るのは次のメッセージだけです:
receiving incremental file list
sent 276 bytes received 10 bytes 21.19 bytes/sec
total size is 0 speedup is 0.00
ファイルは転送されません。
ベストアンサー1
dir1のサブディレクトリを含みますが、dir1自体は除外されます。だから子供たちはそれを見ませんでした。
rsync
マニュアルページから:
パス除外の概念は、末尾の「*」ルールを使用する場合に特に重要です。たとえば、次は機能しません。
+ /some/path/this-file-will-not-be-found + /file-is-included - *
親ディレクトリ「some」は「*」ルールによって除外されるため、rsyncは「some」または「some / path」ディレクトリ内のファイルにアクセスしないため失敗します。 1つの解決策は、階層内のすべてのディレクトリを含む単一の規則(「+ * /」(「- *」規則の前のどこかに配置))を要求し、その
--prune-empty-dirs
オプションを使用することです。別の解決策は、アクセスが必要なすべての親ディレクトリに特定のインクルードルールを追加することです。たとえば、次のルールセットは正しく機能します。+ /some/ + /some/path/ + /some/path/this-file-is-found + /file-also-included - *