java - 无法找到正确的 rsync 参数来传递给 Java 运行时 exec 以忽略文件夹

标签 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 (这是“由于错误而部分传输”),传输完成,但包括隐藏的文件/文件夹。

最佳答案

如上所述,".*" 由 shell 计算。最好将所有选项放在一个文件中并执行 rsync @myfile

顺便说一句,我想知道原始命令是否排除子目录中的 .* 目录。

关于java - 无法找到正确的 rsync 参数来传递给 Java 运行时 exec 以忽略文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977672/

相关文章:

java - Eclipse程序无法连接MySQL数据库

java - Java 中的接口(interface)如何工作?

linux - 是否有任何 UNIX/Linux 命令可以检查 2 行是否连续

java - 正确设置工作路径

azure - 同步两个 azure 虚拟机时要排除哪些文件?

java - 为什么MouseEvent的getX() getY() 好像和真实坐标有偏移?

java - 如何在 JAVA 中将 JSON 和文件传递给 REST API?

go - 如何在go中检查文件是否可执行?

linux - rsync 只同步小于 xy 天的文件

bash - rsync --include 选项不排除其他文件