我一直认为当前目录是用户的东西,而不是脚本,因为它取决于用户的位置,并且每次执行脚本时都可能不同。
所以当我遇到 Java jar 实用程序的-C
选项时,我有点困惑。
对于那些不知道-C
在指定要包含在 jar 中的文件/文件夹之前使用该选项的人。由于文件/文件夹的路径已复制到 jar 中,因此该-C
选项会在包含文件之前更改目录:
换句话说:
jar -C flower lily.class
将制作一个包含该lily.class
文件的 jar,而:
jar flower/lily.class
将flower
在 jar 中创建一个文件夹,其中包含lily.class
对于我正在制作的 jar-ing 脚本,我想使用 Bourne 通配符,folder/*
但这会使使用-C
变得不可能,因为它仅适用于下一个直接参数。
所以使用通配符的唯一方法是从当前目录运行;但我仍然对在脚本中更改和使用当前目录感到不安。
在脚本中使用当前目录有什么缺点吗?也许是出于某种原因不赞成?