Что означает «-» в терминальных командах?

Я видел много учебных пособий, в которых используются команды -- после. Примерно так:

command -- 

Что это значит --?

23
задан 3 July 2016 в 06:33

2 ответа

Эти -- используется для указания на конец параметров командной строки. Это позволяет Вам использовать аргументы, запускающиеся с --. Например, если Вы создаете файл, названный --foo:

$ > '--foo'
$ ls
--foo

И затем пытаются удалить, это, rm будет думать, что Вы даете ему аргумент:

$ rm --foo 
rm: unrecognized option '--foo'
Try 'rm ./--foo' to remove the file '--foo'.
Try 'rm --help' for more information.

Один путь вокруг этого состоит в том, чтобы использовать --:

$ rm -- --foo

Это - обычная практика и рекомендуемый POSIX, таким образом, это поддерживается многими программами.

0
ответ дан 3 July 2016 в 06:33
  • 1
    Я upvoted Ваш комментарий, но я думаю it' s длинная история и большинство раз не необходимый для игры с в контексте здесь. – matt 25 January 2018 в 08:17

Большинство команд будет использовать - чтобы сказать команде, что дальнейшие параметры нужно рассматривать по-другому. Одним примером является комната - имя файла, отмеченное выше. Другой пример, сценарий как 'startx' интерпретирует себя все прежде - и передаст все после него к X-серверу.

0
ответ дан 3 July 2016 в 06:33
  • 1
    Я изменил нас файл под именем [Group1] = " английский (американский) "; но это не работало. На перезагрузку мой компьютер застрял в цикле загрузки, где экран просто продолжал периодически высвечиваться. – NahsiN 13 February 2018 в 07:58

Другие вопросы по тегам:

Похожие вопросы: