无法找到rsync传递给Java Runtime exec以忽略文件夹的正确args

时间:2012-06-11 09:42:09

标签: java unix rsync runtime.exec

我想使用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});

大多数时候我最终得到exit 23(由于错误导致的“部分转移”),传输完成但包含隐藏文件/文件夹。

1 个答案:

答案 0 :(得分:1)

如上所述".*"由shell评估。最好将所有选项放在文件中并执行rsync @myfile

BTW我想知道原始命令是否排除子目录中的.*目录。