Warum ist das rekursive Flaggenkapital in einigen Fällen niedriger und in anderen niedriger?

8

Einige Befehle verwenden Kleinbuchstaben rfür ihr rekursives Flag, während andere einen Großbuchstaben verwenden R.

cp -r foo/ bar/

chmod -R 777 foobar/

Gibt es einen Grund dafür?

Lee Quarella
quelle

Antworten:

8

cp akzeptiert eigentlich beides.

Von cp --help:

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

Aus Gründen der Konsistenz werden die meisten Shell-Befehle -Rals rekursives Flag verwendet, wahrscheinlich weil sie das Verhalten von imitieren ls.

Von ls --help:

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively
Dennis
quelle
1
Auch chmod -rwird schon etwas anderes als rekursiv gemeint!
Darth Android
3

Ich bin mir nicht sicher, ob es einen bestimmten Grund für die Inkonsistenz gibt, außer dass Programmierer wählen können, welche Flags sie wollen.

Ich glaube nicht, dass es dafür irgendeine Form von Standard gibt, daher ist es schwer zu erwarten, dass jeder diesem Beispiel folgt.

Dario Russo
quelle
7
Der Grund wäre wahrscheinlich historisch. In der größeren Unix-Welt, die bis in die 70er Jahre zurückreicht, waren die rekursiven Schalter nicht immer vorhanden, und einige Befehle hatten -r bereits als Schalter verwendet. Da Befehle häufig in Skripten verwendet werden, ist die Abwärtskompatibilität mit einer enormen Trägheit verbunden, sodass sich diese Dinge im Grunde nie ändern. Sie können einem Programm Optionen hinzufügen, aber wir müssen der Entwickler sein, der versucht, die seit langem etablierten Funktionen zu ändern.
Stephanie