![选项的前缀规则到底是什么: - 和 -- ?为什么 find 命令与 --name 选项不兼容?](https://linux22.com/image/13691/%E9%80%89%E9%A1%B9%E7%9A%84%E5%89%8D%E7%BC%80%E8%A7%84%E5%88%99%E5%88%B0%E5%BA%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9A%20-%20%E5%92%8C%20--%20%EF%BC%9F%E4%B8%BA%E4%BB%80%E4%B9%88%20find%20%E5%91%BD%E4%BB%A4%E4%B8%8E%20--name%20%E9%80%89%E9%A1%B9%E4%B8%8D%E5%85%BC%E5%AE%B9%EF%BC%9F%20.png)
有一次,我了解到以下选项Linux命令有两种方式:
- 那些由一个字母组成,前缀为
-
- 由许多字母组成,前缀为
--
这在 95% 的情况下都有效。
但例如,对于find
命令则不然。这个失败了:
find . --name myfilename
这个正在工作:
find . -name myfilename
要么我认为选项以字母数量开头-
,要么--
取决于它们的字母数量,
我同意,任何一个find
命令都应该保留与该选项一起运行的兼容性-name
,但它也应该接受该--name
选项。
真相是什么?
答案1
你学到的是更像是你所说的指导方针比实际规则。或者也许他们应该被称为海关。
残酷的现实是,没有规则,试图通过一些干净而漂亮的规则来对现有工具及其所有历史兼容性包袱进行建模,注定会以泪水告终。
测试/操作/无论什么find
都是一回事,像 X 实用程序 ( -geometry
) 中的单破折号长参数是另一回事,类似的东西tar czf
又是dd if=...
另一回事。
也可以看看:
- 短选项和长选项的区别只是“-”?了解各种长选项的一些背景
- `-name` 和 `-exec` 是 `find` 的选项还是非选项参数?尤其是如果你想对
-name
实际用途吹毛求疵find