1. ホーム
  2. rsync

[解決済み] 特定のファイルのリストだけをrsyncする方法は?

2022-05-16 21:03:42

質問

さまざまなサブディレクトリにある約 50 ほどのファイルをリモート サーバーにプッシュしたいと思っています。 rsync が --include-from オプションを使用してこれを行うことができるだろうと思いました。exclude="*" オプションがない場合、ディレクトリ内のすべてのファイルが同期され、オプションがある場合は、ファイルは同期されません。

rsync -avP -e ssh --include-from=deploy/rsync_include.txt --exclude=* ./ [email protected]:/var/www/ --dry-run

最初はドライで動かしているので、0.0.0.0は当然リモートサーバーのIPに置き換わっています。rsync_include.txt のコンテンツは、アップロードしたいファイルへの相対パスを改行で区切ったリストです。

これを行うより良い方法があるのでしょうか。

どのように解決するのですか?

編集:以下のatpさんの回答がより良いです。 そちらをご利用ください。

もしあなたが特定のファイルのリストを探しているなら、代わりにコマンドラインに直接それらを置くと、より簡単な時間を過ごせるかもしれません。

# rsync -avP -e ssh `cat deploy/rsync_include.txt` [email protected]:/var/www/

ただし、これはコマンドラインの長さが問題になるほどリストが長くないことを前提としており、そのために rsync_include.txt ファイルには実際のパスだけが含まれています (すなわち、コメントや正規表現がありません)。