Jestem nowy w pracy w powłoce, a użycie tych poleceń wydaje się arbitralne. Czy istnieje powód, dla którego jedna flaga ma jedną kreskę, a inna może mieć podwójną kreskę?
Jestem nowy w pracy w powłoce, a użycie tych poleceń wydaje się arbitralne. Czy istnieje powód, dla którego jedna flaga ma jedną kreskę, a inna może mieć podwójną kreskę?
Odpowiedzi:
Po jednym łączniku mogą występować flagi jednoznakowe. Podwójny łącznik poprzedza pojedynczą opcję wieloznakową.
Rozważ ten przykład:
tar -czf
W tym przykładzie -czfokreśla trzy flagi pojedynczych znaków: c, z, i f.
Teraz rozważ inny przykład:
tar --exclude
W takim przypadku --excludeokreśla pojedynczą opcję wieloznakową o nazwie exclude. Podwójny łącznik disambiguates argument wiersza polecenia, zapewniając, że tarinterpretuje go jako excludezamiast kombinacji e, x, c, l, u, d, i e.
cdrecordwspomniano lata temu w powyższych komentarzach.
Wszystko zależy od programu. Zwykle „-” jest używane w przypadku opcji „krótkich” (jedna litera, -h), a „-” jest używane w przypadku opcji „długich” (er) (--help).
Krótkie opcje zwykle można łączyć (więc „-h -a” jest takie samo jak „-ha”)
W systemach uniksopodobnych do określania opcji powszechnie stosuje się łącznik minus ASCII. Po znaku zwykle występuje jedna lub więcej liter. Argument, który jest pojedynczym łącznikiem minus sam w sobie bez liter, zwykle określa, że program powinien obsługiwać dane pochodzące ze standardowego wejścia lub wysyłać dane na standardowe wyjście. W niektórych programach używane są dwa znaki łącznika minus (-) w celu określenia „długich opcji”, w których używane są bardziej opisowe nazwy opcji. Jest to wspólna cecha oprogramowania GNU.
To naprawdę konwencja. Może jednak pomóc parserom w bardziej efektywnym poznaniu opcji przekazanych do programu. Poza tym istnieją porządne narzędzia, które mogą pomóc w analizie tych poleceń, takie jak getopt(3)niestandardowe narzędzia getopt_long(3)do analizy argumentów programu.
To miłe, ponieważ możemy połączyć wiele krótkich opcji, jak mówią inne odpowiedzi tar -xzf myfile.tar.gz.
Gdyby istniał argument „Lisa” ls, prawdopodobnie miałby inne znaczenie ls -lisaniż typ ls --lisa. Były to l, i, soraz aparametry, a nie słowa.
W rzeczywistości możesz pisać ls -l -i -s -a, co oznacza dokładnie to samo co ls -lisa, ale to zależy od programu.
Istnieją również programy, które nie przestrzegają tej konwencji. Szczególnie dla mojego wzroku ddi gcc.
krótkie opcje z pojedynczym myślnikiem vs. długie opcje z podwójnym myślnikiem
krótkie opcje można łączyć w jeden argument;
for example: ls -lrt #instead of ls -l -r -t
Jeśli pozwolimy na długie opcje z jednym myślnikiem, spowoduje to niejednoznaczność. Aby rozwiązać ten problem, używamy podwójnego myślnika dla długich opcji.