リモートサーバーで複数の種類のファイルをすべて同期する方法は?たとえば、サーバーのフォルダにあるすべてのpdfとpngを同期させたいとします。
構文エラーが発生します。rsync REMOTE_SERVER:REMOTE_PATH/{*.pdf, *.png} LOCAL_PATH
私も試してみましたが、
rsync --include='*.png' --include='*.pdf' --exclude='*' REMOTE_SERVER:REMOTE_PATH/ LOCAL_PATH
何も同期されません(exclude
前にある場合でも同じ)。
私は現在助けを探していますが、
rsync REMOTE_SERVER:REMOTE_PATH/*.pdf LOCAL_PATH; rsync REMOTE_SERVER:REMOTE_PATH/*.png LOCAL_PATH
単一のコマンドでこれを実行したいと思います。
答え1
努力する:
rsync -av --include='*.pdf' --include='*.png' --exclude='*' REMOTE_SERVER:REMOTE_PATH/ LOCAL_PATH
入れ子になったディレクトリ構造を使用している場合は、次のものを使用できます。
rsync -av --include='*/' --include='*.pdf' --include='*.png' --exclude='*' REMOTE_SERVER:REMOTE_PATH/ LOCAL_PATH
関連ファイル形式を含め、他のすべての形式を除外するために除外と埋め込みを使用しました。
お役に立てば幸い
答え2
何が起こるのか見てみましょう。私はあなたが中bash
かっこ拡張を理解する別のシェルを使用していると仮定します。
rsync REMOTE_SERVER:REMOTE_PATH/{*.pdf, *.png} LOCAL_PATH
この接頭辞を付けると、中echo
かっこが拡張されないことがわかります。
echo rsync REMOTE_SERVER:REMOTE_PATH/{*.pdf, *.png} LOCAL_PATH
rsync REMOTE_SERVER:REMOTE_PATH/{*.pdf, *.png} LOCAL_PATH
そして、rsync
3つのパラメータREMOTE_SERVER:REMOTE_PATH/{*.pdf,
、*.png}
およびを確認してくださいLOCAL_PATH
。
もともと問題は、校正器内部に空間があって構造が壊れたということでした。これがより正確です:
echo rsync REMOTE_SERVER:REMOTE_PATH/{*.pdf,*.png} LOCAL_PATH
rsync
次の3つのパラメータを確認してくださいREMOTE_SERVER:REMOTE_PATH/*.pdf
。REMOTE_SERVER:REMOTE_PATH/*.png
LOCAL_PATH
これにより、指定されたリモートディレクトリ内のすべてのPDFファイルとPNGファイルがローカルターゲットにコピーされます。ただし、rsync
ファイル変更時間(--times
、、、または)が含まれていないため、最適化されていません-t
。
rsync --times REMOTE_SERVER:REMOTE_PATH/{*.pdf,*.png} LOCAL_PATH
ルートツリーからすべてのPDFファイルとPNGファイルをコピーするには、REMOTE_PATH
まったく異なるアプローチが必要です。
rsync --recursive --times --include '*.pdf' --include '*.png' --include '**/' --exclude '*' --prune‐empty‐dirs REMOTE_SERVER:REMOTE_PATH LOCAL_PATH