Cosa significa "-" come argomento per un comando?


Risposte:


18

È una convenzione comune da usare -in un argomento nomefile per significare stdino stdout; tarsegue la stessa convenzione. Dalla pagina man:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
Questa è solo una convenzione; devi leggere la manpage per quel particolare comando per vedere cosa -significa per esso. Stdin / stdout è di gran lunga il significato più comune, ma ce ne sono altri. Ad esempio, per alcune versioni envsignifica "iniziare con un ambiente vuoto".
cjm

0

Un'altra convenzione è usare '-' per indicare la fine dei flag e l'inizio dei nomi dei file. Tale comportamento è incorporato almeno in getopt (3) su RedHat 4. Non riesco a trovare una pagina man di Red Hat che usi '-' per indicare la fine degli argomenti, tutti sembrano usare '-' per farlo. La pagina man di awk ha '-' in quel contesto, quindi forse solo i vecchi comandi "cimelio" Unix o Solaris usano '-' come argomento - separatore di nomi di file.


3
--segnala la fine delle opzioni, quindi tutto ciò che viene dopo è un operando. -non è un'opzione, quindi e tutto ciò che viene dopo è un operando. Questo è un comportamento standard . Per molti comandi, come ad esempio tar, l'operando -significa input o output standard . Su molte shell, set - -aè equivalente a set -- -a, e su alcune vecchie shell Bourne set - -aera l'unica forma accettata, ma questa è un'eccezione con il setbuilt-in.
Gilles 'SO-smetti di essere malvagio' il

I programmi Solaris seguono principalmente la convenzione standard POSIX --per separare le opzioni dagli argomenti.
alanc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.