相关疑难解决方法(0)

“--”(双破折号)是什么意思?

--compgen命令中看到使用过。

例如:

compgen -W "foo bar baz" -- b
Run Code Online (Sandbox Code Playgroud)

里面的意思是什么--

command-line shell utilities syntax

659
推荐指数
5
解决办法
25万
查看次数

为什么cat、grep等命令无法理解减号开头的文件?

如果我有一个名称以单个或多个减号开头的文件,例如--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命令在脚本中重命名它们。

command-line shell bash shell-script

5
推荐指数
2
解决办法
5523
查看次数

标签 统计

command-line ×2

shell ×2

bash ×1

shell-script ×1

syntax ×1

utilities ×1