¿Qué significa "-" (doble guión)? (también conocido como "doble guión desnudo")

Respuestas:

583

Más precisamente, --se utiliza un doble guión ( ) en los comandos integrados de bash y muchos otros comandos para indicar el final de las opciones de comando, después de lo cual solo se aceptan parámetros posicionales.

Ejemplo de uso: supongamos que desea grep un archivo para la cadena -v- normalmente -vse considerará la opción para revertir el significado coincidente (solo mostrar líneas que no coinciden), pero con --usted puede grep para una cadena -vcomo esta:

grep -- -v file
Guss
fuente
3
Lo más notable en el Bash setincorporado, donde es absolutamente necesario.
l0b0
10
--funciona para separar las opciones de las expresiones regulares grep, pero la forma canónica es usar -e/ --regexp.
l0b0
55
@ l0b0: el patrón para buscar es normalmente uno de los parámetros posicionales, por lo que puede ajustarse después del --, aunque tiene razón al señalar que mi ejemplo anterior también podría escribirse como grep -e -v file(aunque eso es muy confuso).
Guss
2
No todos los bashcomandos incorporados aceptan --como el final del marcador de opción. [y echono, por ejemplo ( una de las razones echono se puede usar de manera confiable ).
Stéphane Chazelas
44

Esto marca el final de la lista de parámetros (opción).

polemon
fuente
39

En man bashpodemos leer en la sección de comandos incorporados de Shell :

A menos que se indique lo contrario, cada comando incorporado documentado en esta sección acepta opciones precedidas por -acepta -- para indicar el final de las opciones .

Los :, true, false, y testórdenes internas no aceptan opciones y no tratan --de forma especial. El exit, logout, break, continue, let, y shiftórdenes internas y aceptar los argumentos de proceso que comienza con -sin requerir --. Otros componentes incorporados que aceptan argumentos pero no se especifican como opciones de aceptación interpretan argumentos que comienzan -como opciones no válidas y requieren --evitar esta interpretación.

Tenga en cuenta que echono interpreta --que significa el final de las opciones.

kenorb
fuente
2
+1 para referencia man bash(note to self para la próxima vez:).
user3773048