我--在compgen命令中看到使用过。
例如:
compgen -W "foo bar baz" -- b
Run Code Online (Sandbox Code Playgroud)
里面的意思是什么--?
如果我有一个名称以单个或多个减号开头的文件,例如--1它不能用作许多命令的参数。即使我跑
cat --1
Run Code Online (Sandbox Code Playgroud)
我收到无法识别的选项错误消息,而不是文件内容:
cat: unrecognized option '--1'
Run Code Online (Sandbox Code Playgroud)
当我输入时出现相同的效果
cat "--1"
cat '--1'
cat \-\-1
Run Code Online (Sandbox Code Playgroud)
没有任何效果。以“-”开头的文件在文件系统中并不违法,但在 cli 和脚本中使用它们是相当困难的。好的,以防万一cat或者grep我可以使用
cat <--1
Run Code Online (Sandbox Code Playgroud)
这会起作用,但是
rm --1
Run Code Online (Sandbox Code Playgroud)
也不起作用,并且很难用其他命令替换此命令。毕竟很不舒服。是否有与不使用此类文件名不同的通用解决方法?
顺便说一句,如果 name file 是单个-并且所有大多数命令都会将其理解为stdin,不是吗?
并且很难不使用这样的文件名,因为我也无法使用mv命令在脚本中重命名它们。