web-dev-qa-db-ja.com

rsyncをディレクトリではなくファイルでのみ機能させる方法

特定のファイル(たとえば* .jpg)のみをミラーリングしたいのですが、rsyncは宛先ホスト上に* .jpgファイルを含まない空のディレクトリを作成します。

私の構文は次のとおりです。

rsync -arv  
      --include '*/' 
      --include '*.flv' 
      --exclude '*' 
      Host_source/ Host_dest/

* .jpgに一致するすべてのパスとファイルパターンでファイルを作成しようとしています。

    find source/ -iname *.jpg > myfiles.txt  
/* and I use "sed" to filter the parent path to be OK */

だから、今私は実行します:

rsyn -ar --files-from=myfiles.txt Host_source/ Host_dest/

それはうまくいきます。 「Host_dest」には空のディレクトリは作成されませんが、「Host_source」で削除する必要のあるファイルが「Host_dest」にある場合、rsyncはそれらを削除しません。

では、rsyncに「ルック」ファイルパターンのみを指示し、Host_destに空のディレクトリを作成しないようにするにはどうすればよいですか?

私が夢中になる前に答えてくれてありがとう:)

3
thierryForum

man rsync:

-m, --Prune-empty-dirs      Prune empty directory chains from file-list
2
sparkie

コマンドラインから再帰オプションを削除してみてください

rsync -a --files-from = myfiles.txt Host_source/Host_dest /

0
X Tian