Apache Commons API を使用してコピー コマンドを実行しようとしています。以下は私の努力です:
String privateKey = "/Users/TD/.ssh/id_rsa";
String currentFile = "/Users/TD/One.txt";
String target = "root@my.server.com:";
// Space is present in destination
String destination="/Leo/Ta/San Diego";
CommandLine commandLine = new CommandLine("scp");
commandLine.addArgument("-i");
commandLine.addArgument(privateKey);
commandLine.addArgument(currentFile);
commandLine.addArgument(target + destination);
System.out.println(commandLine.toString());
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(0);
executor.execute(commandLine);
出力:
scp -i /Users/TD/.ssh/id_rsa /Users/TD/One.txt "root@my.server.com:/Leo/Ta/San Diego"
org.apache.commons.exec.ExecuteException: プロセスがエラーで終了しました: 1 (終了値: 1)
同じプログラムは、宛先フォルダーにスペースがなくても問題なく動作します。
String destination="/Leo/Ta/SanJose";
scp -i /Users/TD/.ssh/id_rsa /Users/TD/One.txt root@my.server.com:/Leo/Ta/SanJose