0

Runtime.exec() を使用して Java から rsync を呼び出し、隠しファイル/フォルダーを無視したい。コマンドはシンプルで、コマンド ラインで魅力的に機能します。

rsync -r --exclude=".*" source destination

これらの引数を正しく分解して String[] として exec() に渡すために、非常に多くの異なる組み合わせを試しました。私は失敗し、正気を失いかけているかもしれません。

私が試したことのいくつかの例

String[]{ "rsync", "-r", "--exclude", "=", ".*", source, destination});
String[]{ "rsync", "-r", "--exclude", "=", "\".*\"", source, destination});
String[]{ "rsync", "-r", "--exclude=\".*\"", source, destination});

ほとんどの場合、終了 23 (「エラーによる部分転送」) で終了します。転送は完了しますが、隠しファイル/フォルダーが含まれます。

4

1 に答える 1

1

前述のよう".*"に、シェルによって評価されます。すべてのオプションをファイルに入れて実行することをお勧めしますrsync @myfile

.*ところで、元のコマンドがサブディレクトリ内のディレクトリを除外するかどうかは疑問です。

于 2012-06-11T10:41:13.523 に答える