为什么“find”命令对多字符选项使用单个破折号?

为什么“find”命令对多字符选项使用单个破折号?

find该命令违反了使用双破折号表示多个字符选项的惯例,有什么原因吗?

我的意思是,例如,为什么

find -name "my_file.*"

而不是

find --name "my_filename.*"

答案1

作为@muru 说

这些不是选项,而是测试,我们已经有了一个带有单个连字符的多字符测试名称的约定 - shell [/test命令的测试。

答案2

这只是历史。不要过度解读这些东西;当那些旧的 Unix 命令被发明时,没有约定,至少没有像今天这样牢固的约定。每个人都在做自己的事情。花了很长时间才解决所有问题,到那时它已经如此根深蒂固,以至于如果有一场运动来统一这些东西,就会引起强烈抗议,许多精心手工制作的脚本就会被破坏。

相关内容