Mengapa -r modal bendera rekursif dalam beberapa dan lebih rendah pada yang lain?

8

Beberapa perintah menggunakan huruf kecil runtuk bendera rekursif mereka sementara yang lain menggunakan huruf kapital R.

cp -r foo/ bar/

chmod -R 777 foobar/

Apakah ada alasan untuk ini?

Lee Quarella
sumber

Jawaban:

8

cp sebenarnya menerima keduanya.

Dari cp --help:

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

Untuk konsistensi, sebagian besar perintah shell digunakan -Rsebagai flag rekursif , mungkin karena mereka meniru perilaku ls.

Dari ls --help:

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively
Dennis
sumber
1
Juga, chmod -rsudah terbiasa berarti sesuatu selain rekursif!
Darth Android
3

Saya tidak yakin bahwa ada alasan khusus untuk ketidakkonsistenan selain bahwa pemrogram dapat memilih untuk menggunakan bendera apa pun yang mereka inginkan.

Saya tidak berpikir ada bentuk standar untuk itu sehingga sulit untuk mengharapkan semua orang untuk mengikuti.

Dario Russo
sumber
7
Alasannya kemungkinan besar bersifat historis. Dalam dunia Unix yang lebih besar yang berasal dari tahun 70-an, switch rekursif tidak selalu ada, dan beberapa perintah sudah menggunakan -r sebagai switch. Karena perintah sering digunakan dalam skrip, ada kelembaman luar biasa yang terkait dengan kompatibilitas ke belakang, sehingga hal-hal ini pada dasarnya tidak pernah berubah - Anda dapat menambahkan opsi ke program, tetapi celakalah pengembang yang mencoba mengubah fungsi yang telah lama ada.
Stephanie