-f(–source-file)オプションで、ファイルリストを指定して転送することができます。
ファイルリストには転送元のファイルパスの一覧を記述します。ファイルパスは絶対パス、相対パスでの記述が可能です。
Pull : hcp [OPTION]… -f SOURCE_LIST_FILE DEST
Pull : hcp [OPTION]… –source-file-host=HOST [–port=PORT] [–user=USER] -f SOURCE_LIST_FILE DEST
・ローカルが転送元の場合は、以下の様にファイルリストを作成します。
$ cat my_filelist1.txt
file01.txt
dir1/file1_01.txt
/home/user/hcp_dir/file02.txt
このリストファイルを -fオプションで指定して、リモートサーバ上(192.168.10.100)の/home/user/hcp_dst/ ディレクトリ配下にコピーする場合は以下のように実行します。
$ hcp -f my_filelist1.txt user@192.168.10.100:hcp_dst/
実行後のリモートサーバ側の/home/user/hcp_dst は以下のような構成になります。
home/ └ user/ └ hcp_dst/ ├ file01.txt ├ file02.txt └ file1_01.txt
・ディレクトリ構造を保ったまま転送したい場合は、上位のディレクトリ名を指定してください。
$ cat my_filelist2.txt
dir1/
dir2/file2_01.txt
/home/user/hcp_dir/dir3/
$ hcp -R -f my_filelist2.txt user@192.168.10.100:hcp_dst2/
実行後のリモートサーバ側の/home/user/hcp_dst2/ は以下のような構成になります。
home/ └ user/ └ hcp_dst2/ ├ dir1/ // ★ディレクトリ指定の場合ディレクトリ構造が保たれる │ ├ file1_01.txt │ ├ file1_02.txt │ └ dir1_1/ │ └ file1_1_01.txt ├ dir3/ │ └ file3_01.txt // ★ディレクトリ指定の場合でも中間パスは構築されない └ file2_01.txt // ★ファイル指定の場合ディレクトリ構造は保たれない
・リモートサーバ(192.168.10.100)が転送元の場合は、リモートファイルのリスト(サーバのアドレスとポート番号(省略可)を含む)を作成します。
$ cat my_filelist3.txt
192.168.10.100:874:file01.txt
192.168.10.100:874:hcp_dir1/
192.168.10.100:874:/home/user/file02.txt
$ hcp -R -f my_filelist3.txt --user=user local_dir/
local_dir/ ├ hcp_dir1/ │ ├ file1_01.txt │ ├ file1_02.txt │ └ dir1_1/ │ └ file1_1_01.txt ├ file01.txt └ file02.txt
※リモートファイルのリストは以下の様に記述することもできます。
$ cat my_filelist3.txt
192.168.10.100:874:file01.txt
:hcp_dir1/
:/home/user/file02.txt
・リモートサーバ(192.168.10.100)が転送元の場合ファイルリストにはアドレスを記述せず、–source-file-hostオプションで、リモートサーバのアドレスとポート番号(省略可)を指定することもできます。
$ cat my_filelist4.txt
file01.txt
hcp_dir1/
/home/user/file02.txt
$ hcp -R -f my_filelist4.txt --source-file-host=192.168.10.100:874 --user=user local_dir/