Command line interface POSIX短选项是否有默认保留名称列表?

Command line interface POSIX短选项是否有默认保留名称列表?,command-line-interface,posix,naming-conventions,Command Line Interface,Posix,Naming Conventions,我试图确定POSIX标准中是否存在短选项的“保留”名称列表。可以通过规范、惯例或两者 我能找到的唯一真正的保留短选项名称是-W 看 准则3: 每个选项名称应为可移植字符集中的单个字母数字字符(alnum字符分类)。-W(大写-W)选项应保留给供应商选项 我想一个强大的约定是-h,它是--help的缩写。另一个较弱的,似乎是-n的-dry run(来自一个比我更习惯于这个标准的同事) 现在,如果我必须列出一个清单,它会是这样的: 由规范保留 -W:供应商选项 按惯例严格保留 -h:缩写为--

我试图确定POSIX标准中是否存在短选项的“保留”名称列表。可以通过规范、惯例或两者

我能找到的唯一真正的保留短选项名称是
-W

准则3: 每个选项名称应为可移植字符集中的单个字母数字字符(alnum字符分类)。-W(大写-W)选项应保留给供应商选项

我想一个强大的约定是
-h
,它是
--help
的缩写。另一个较弱的,似乎是
-n
-dry run
(来自一个比我更习惯于这个标准的同事)

现在,如果我必须列出一个清单,它会是这样的:

由规范保留

  • -W
    :供应商选项
按惯例严格保留

  • -h
    :缩写为
    --help
被惯例弱保留

  • -n
    :缩写为
    --干运行

是否存在这样的清单?做一个可行吗?甚至想这样做吗?

我编写了一个脚本,试图将短期权与长期权链接起来。我设法从48种不同的工具中收集了选项,并得到了答案

这远不是完美的,但我可以提取一些趋势。
*
意味着我添加了同一单词的不同口味以进行计数(例如
--exclude
--exclude all

强劲趋势: (任何与10+关联的内容)

  • -V
    --版本
  • -h
    帮助
  • -f
    -文件
  • -i
    -忽略
    *
  • -n
    --no
    *(总是
    --no something
  • -o
    -输出
    *
  • -q
    --静音
    (或
    --静音
  • -v
    --verbose
    (也可以是
    --version
    ,但是
    --verbose
    只有22次命中,而
    --version
    只有13次命中)
中期趋势: (任何与5+关联的内容)

  • -D
    -定义
  • -I
    -包括
    *
  • -X
    -排除
    *
  • -c
    -count
  • -d
    -debug
  • -f
    -force
  • -i
    -输入
    *
  • -k
    -键
    *
  • -m
    --mode
  • -n
    -试运行
  • -r
    -递归
  • -u
    -用户
疲软趋势: (任何具有3+关联或仅在其类别中具有2+关联的内容)

  • -0
    -null
  • -C
    -目录
  • -D
    -debug
  • -F
    -文件
  • -H
    --格式
  • -L
    --语言
    --许可证
    (两者相等)
  • -U
    -undefine
  • -W
    --警告
  • -a
    -apend
    *
  • -c
    检查
  • -e
    --表达式
    --错误
    *
  • -f
    -前台
  • -h
    -host
  • -i
    --包括
    /
    --inetd
    /
    --交互式
  • -l
    --list
    /
    --line
    *
  • -n
    --number
  • -p
    --password
    /
    --port
    /
    --print
  • -r
    -反向
  • -s
    --silent
    /
    --lint
    *
  • -t
    --test
    /
    --trace
  • -u
    --唯一的
    /
    --更新
  • -w
    --宽度
  • -x
    -debug