Perché la capitale della bandiera ricorsiva -r è in alcuni e inferiore in altri?


8

Alcuni comandi usano una minuscola rper il loro flag ricorsivo mentre altri usano una lettera maiuscola R.

cp -r foo/ bar/

chmod -R 777 foobar/

C'è una ragione per questo?

Risposte:


8

cp accetta effettivamente entrambi.

Da cp --help:

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

Per coerenza, la maggior parte dei comandi di shell utilizza -Rcome flag ricorsivo , probabilmente perché imita il comportamento di ls.

Da ls --help:

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

1
Inoltre, chmod -rè già usato per significare qualcosa di diverso da ricorsivo!
Darth Android

3

Non sono sicuro che ci sia una ragione specifica per l'incoerenza diversa da quella che i programmatori possono scegliere di usare qualunque flag vogliano.

Non penso che ci sia alcuna forma di standard per questo, quindi è difficile aspettarsi che tutti seguano l'esempio.


7
Il motivo sarebbe probabilmente storico. Nel più ampio mondo Unix che risale agli anni '70, gli switch ricorsivi non erano sempre presenti e alcuni comandi avevano già fatto uso di -r come switch. Poiché i comandi vengono spesso utilizzati all'interno degli script, esiste un'enorme inerzia associata alla compatibilità con le versioni precedenti, quindi queste cose non cambiano sostanzialmente: puoi aggiungere opzioni a un programma, ma guai a essere lo sviluppatore che cerca di cambiare funzionalità consolidata.
Stephanie,
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.