如何使Bash命令识别“ - ”作为文件名的一部分而不是选项?
我想在Bash中对hex {'-9
文件的内容进行hexdump。因此,我使用以下命令:
hexdump -C \-9
在这里,我试图逃离-
,就像我逃离一个空间。
但是,hexdump
会出现以下错误:
hexdump: invalid option -- '9'
即,hexdump
将文件名解释为一个选项?
答案 0 :(得分:1)
我已经能够使用--
来标记选项的结尾:
$ echo "test" > -9 # in this case it can't be understood as an option, no problem
$ hexdump -C -- -9 # -- marks the end of the options, so the -9 is understood as a filename
00000000 74 65 73 74 0a |test.|
00000005
这是getopt
的特殊性,如its man page中所述。