Archaea

hcp 基本的な使用方法 ― 複数のファイルを一括指定してコピーする

-f(–source-file)オプションで、ファイルリストを指定して転送することができます。

ファイルリストには転送元のファイルパスの一覧を記述します。ファイルパスは絶対パス、相対パスでの記述が可能です。

Push : hcp [OPTION]… -f SOURCE_LIST_FILE [USER@]HOST[:PORT]:DEST
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/

TOP