rsync は --files-from=FILE の相対部分が何であるか理解していません

rsync は --files-from=FILE の相対部分が何であるか理解していません

次のようなファイルがあります:

/cygdrive/d/path/to/my/file1.png
/cygdrive/d/path/to/my/file2.png
/cygdrive/d/path/to/my/file3.png
/cygdrive/d/path/to/my/file4.png

私は次のようにrsyncを呼び出しています:

rsync --files-from="/cygdrive/d/myfiles.txt" "/cygdrive/d/path/to/" "user@remotehost:/cygdrive/c/new/path/for"

rsync で次のような dir 構造を作成したい:

c:\new\path\for\my\file1.png
...

しかし、次のようなエラーが発生して失敗します:

rsync: change_dir "/cygdrive/c/new/path/for/cygdrive/d/path/to/my" が失敗しました: そのようなファイルまたはディレクトリはありません rsync: mkstmp "/cygdrive/c/new/path/for/cygdrive/d/path/to/my/file1.png.asdjfhsdj" が失敗しました: そのようなファイルまたはディレクトリはありません

/cygdrive/d/path/to/ソース パスの一部が「ルート」であり、そのサブフォルダー/ファイルのみを宛先ルートに複製して宛先に新しいパスを与える必要があることを rsync に理解させるにはどうすればよいですか?

答え1

コマンドラインで指定されたビットは「ソース ルート」部分であり、ファイルからの行は「相対」部分であるようです。

そのため、/cygdrive/d/path/to/ファイル内のすべての行を削除して、my/file1.png

次に、質問のコマンドラインで呼び出されると、rsyncはを使用してローカルファイルパスを組み立てcmd_line_source + file_line、それをcmd_line_dest + file_line

関連情報