What is `–` called?

Recently I got to know of -- that is double-hyphen which is used to tell a command that the option list has ended and what follows should not be considered as a option. So,

grep --  'search_word' *

would search for the given search_word. But you could see a unexpected behavior if you remove -- and if there is a single file that start with -, which would switch on the option that match with the chars in filename.

What is this -- called ? Is there any technical term to this ?

Asked By: mtk


The -- is working for tools which use getopt(3) to process command line arguments and many API that parse POSIX style options.

From the manual page of getopt(3):

The interpretation of options in the argument list may be cancelled by the option `–‘ (double dash) which causes getopt() to signal the end of argument processing and return -1.

I would then say it is called double dash

Answered By: Matteo

The only two names which I’ve head in practise are “double dash” for referring to it aesthetically, and “end of options” for referring to it functionally.

Answered By: Chris Down
Categories: Answers Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.