![如何让这个 java 命令对 find 命令找到的每个文件起作用?](https://linux22.com/image/22272/%E5%A6%82%E4%BD%95%E8%AE%A9%E8%BF%99%E4%B8%AA%20java%20%E5%91%BD%E4%BB%A4%E5%AF%B9%20find%20%E5%91%BD%E4%BB%A4%E6%89%BE%E5%88%B0%E7%9A%84%E6%AF%8F%E4%B8%AA%E6%96%87%E4%BB%B6%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我在 Bash shell 脚本中有这个命令,其目的是应用 java 命令,html压缩器,到目录中找到的每个 HTML 文件:
find $DIR -type f -name '*.html' -exec java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;
然而,虽然命令行的输出似乎表明它正在查找每个文件并对其执行某些操作,但它实际上并未将结果写入文件。
根据htmlcompressor的文档,用法是这样的:
用法:java -jar htmlcompressor.jar [选项] [输入]
所以最后应该有一个名为 name 的输入文件,但我认为该find
命令已经解决了这个问题。不过,看来我错了。
我该怎么做才能让它真正作用于我找到的文件?
答案1
您提供的内容似乎是正确的;您可以通过插入命令来验证是否java
正确调用:echo
find $DIR -type f -name '*.html' -exec echo java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;
(假设一个正确的 POSIX 兼容系统,该系统在标准上具有非内置版本的 shell 内置函数PATH
)。
除此之外,您可能需要手动运行其中一个结果命令来验证它是否正常工作。