我想使用 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 (这是“由于错误而部分传输”),传输完成,但包括隐藏的文件/文件夹。
最佳答案
如上所述,".*"
由 shell 计算。最好将所有选项放在一个文件中并执行 rsync @myfile
。
顺便说一句,我想知道原始命令是否排除子目录中的 .*
目录。
关于java - 无法找到正确的 rsync 参数来传递给 Java 运行时 exec 以忽略文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977672/