Dlaczego w niektórych krajach rekursywny kapitał flagowy, aw innych niższy?


8

Niektóre polecenia używają małych liter rjako flagi rekurencyjnej, podczas gdy inne używają dużej litery R.

cp -r foo/ bar/

chmod -R 777 foobar/

Czy jest tego powód?

Odpowiedzi:


8

cp faktycznie akceptuje oba.

Od cp --help:

  -R, -r, --recursive          copy directories recursively

Dla zachowania spójności większość poleceń powłoki używa -Rjako flagi rekurencyjnej , prawdopodobnie dlatego, że imitują zachowanie ls.

Od ls --help:

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively

1
Ponadto chmod -rjest już używane w znaczeniu czegoś innego niż rekurencyjne!
Darth Android

3

Nie jestem pewien, czy istnieje jakiś konkretny powód niespójności poza tym, że programiści mogą zdecydować się na użycie dowolnych flag.

Nie sądzę, aby istniała jakaś forma tego standardu, więc trudno oczekiwać, że wszyscy pójdą w jego ślady.


7
Przyczyna byłaby prawdopodobnie historyczna. W większym świecie uniksowym, który sięga lat 70., przełączniki rekurencyjne nie zawsze były dostępne, a niektóre polecenia używały -r jako przełącznika. Ponieważ polecenia są często używane w skryptach, istnieje ogromna bezwładność związana z kompatybilnością wsteczną, więc te rzeczy zasadniczo nigdy się nie zmieniają - możesz dodawać opcje do programu, ale biada deweloperowi, który próbuje zmienić dawną funkcjonalność.
Stephanie
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.