从Java
执行以下命令时遇到问题Process p2 = Runtime.getRuntime().exec("find /home/app/reports/ATM.CCC.* -mtime +1000");
我需要查找格式为ATM.CCC.
且超过1000天的文件。
还需要删除超过100天的文件。
答案 0 :(得分:2)
我假设您希望将/home/app/reports/ATM.CCC.*
扩展为文件列表。
这不起作用,因为“globbing”是一个shell函数,而不是由exec
系统调用...或Java exec(...)
方法执行的核心系统函数。
您需要做的是在shell中运行该命令; e.g。
.... exec(new String[]{
"sh", "-c",
"find /home/app/reports/ATM.CCC.* -mtime +1000"
});
请注意,您需要使用带有字符串数组的exec
重载。如果您尝试使用带有String的重载并将其拆分为参数...就像这样......
.... exec("sh -c \"find /home/app/reports/ATM.CCC.* -mtime +1000\"");
命令字符串将无法正确分割。 (exec
拆分器不了解Unix / Linux shell样式引用。)