为什么所有标准命令都包含一个 ASCII 字母?

Cam*_*une 1 executable filenames unicode

尽管人们可以轻松地制作一个名为./42甚至的可执行文件./????,但我发现没有包含无字母命令的常见软件包。例如,在 Ubuntu 上,apt-file find . | grep -i -e '/[^a-z/_\-]+$'报告每个可执行文件的基本名称至少有一个字母、下划线或破折号。唯一的自由字母的文件或迪尔斯,我发现是不可执行的,通常版本号:docbook/dtd/xml/4.1.2/usr/include/c++/4.8.2,等。

是否有任何已发布的规则或标准限制了命令的命名方式?或者这仅仅是文化实践?

ilk*_*chu 5

反例:[命令,你在写if [ "$foo" = bar ]. 它与 相同test,只是它需要最后一个]参数,并且是标准实用程序

是的,它是一个可执行文件:

# ls -l "/usr/bin/["
-rwxr-xr-x 1 root root 51920 Mar  2  2017 /usr/bin/[
Run Code Online (Sandbox Code Playgroud)