从终端完成的下列工程
find testDir -type f -exec md5sum {} ;
此处 testDir
是包含某些文件的目录( 例如文件1、 文件2和文件3) 。
然而,在爪哇使用以下文字时,我发现一个错误:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("find testDir -type f -exec md5sum {} \;");
错误是
find: missing argument to `-exec
我认为我逃避角色是正确的,我尝试了几种不同的格式,我无法使这个运作。
“强势”UPDATE 强势” @jtahlborn 完美解答了这个问题。 但是命令现在在计算 md5sum 之前略微改变了对目录中每个文件的排序, 如下(我已经接受了最初问题的极好答案, 所以如果有人能想出这个格式的话, 我就会请人喝啤酒。 我尝试了所有我能想到的组合, 在下面找到答案, 但没有成功 。 )
"find testDir -type f -exec md5sum {} + | awk {print $1} | sort | md5sum ;"
<强 > NEW 更新 强 >
对于管道,你需要一个贝壳 所以我结束了这个, 工作很好,你仍然可以得到输出。
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(new String[]
{
"sh", "-l", "-c", "find " + directory.getPath() + " -type f -exec md5sum {} + | awk {print $1} | sort | md5sum"
});