次のようなファイルがあります:
/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